CI 묻고 답하기

제목 쿼리문제인데요..
글쓴이 ci_chobo 작성시각 2012/07/26 15:57:19
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 14477   RSS
실력이 부족해 자꾸만 글을 쓰게 되네요..

리플 삭제 버튼을 만드는 과정에서

$no = $this->uri->segment(4,0); ->> 이 값이 해당 글의 고유번호입니다.

            $this->db->select('*');
            $this->db->where('pno', $no);
            $this->db->order_by('date', 'asc');
            $query = $this->db->get('reple');

pno는 리플 테이블에 있는 해당 글 고유번호이구요 no 는 따로 있습니다( no 가 PK입니다 )

저렇게 하니 리플이 삭제는 되는데 첫번째 리플만 삭제가 됩니다.

두번째 세번째 리플도 삭제는 되는데 해당 페이지로 넘어가질 않습니다. 오류가뜨면서 디비는 도는데 삭제가 되는 것 같더군요...

쿼리문을 어떻게 바꾸면 조언좀 부탁드립니다.


 다음글 메뉴얼 and or 부분 (1)
 이전글 js,css폴더 등 인클루드하려면 permission이... (1)

댓글

변종원(웅파) / 2012/07/26 16:01:05 / 추천 0
첫줄은 필요없구요. 전체를 불러올 경우엔 생략하면 자동으로 불러옵니다.
그리고 리플 테이블에서 번호 가져와서 삭제하는 것 같은데 order by도 필요 없습니다.
어차피 해당되는 리플은 다 삭제하는데 괜히 정렬하면 리소스만 잡아먹습니다.

그리고 삭제하는 구문을 올려주시구요.

해당 페이지로 넘어가질 않는다는게 무슨 말인지 모르겠네요.

질문을 잘 하셔야 잘 대답할 수 있습니다.
ci_chobo / 2012/07/26 16:14:47 / 추천 0
죄송합니다 ㅠㅠ 글이 너무 두서가 없었네요 ;;

컨트롤러 부분에서

$reple_no = $this->input->post('reple_no');
            $result = $this->chaos_model->reple_delete($reple_no);
           
            if($result)
            {
                echo "OK";
            }
            else
            {
                echo "FAIL";
            }

이렇게 불러줍니다. $reple_no 라는게 해당 리플의 고유 번호 입니다.

디비 부분이

public function reple_delete($reple_no)
        {
            $this->db->where('no', $reple_no);
            $result = $this->db->delete('chaos_reple');
           
            return $result;
        }

이렇게 되어서

return된 값이 있으면 echo OK 를 찍어서


$.ajax({
            type:"post",
            url : action,
            data : reple_data,
            success : function(response)
            {
                if(response == "OK")
                {
                    alert("삭제성공");
                    location.href="";
                }
                else
                {
                    alert("삭제실패");
                }
            }
        });

아.. reple_data = {
                    reple_no : $("#reple_no").val()
        }; 값이 넘어갑니다. , 액션값으로는 맨 처음 컨트롤러가 불리구요

이 부분으로 가게 되는데요

말씀드리면 삭제 버튼을 클릭한 리플이 삭제는 되지만 에러가 뜨면서 삭제가 됩니다
alert("삭제성공")을 찍으면서 탈 때도 있고, 그냥 맨 화면에 echo 값 OK만 뜨면서 (아무것도안뜨고 OK만뜹니다)
삭제가 될 때도 있습니다..

그리고 방금 발견한건데 리플을 첫번째꺼 부터 지우면 에러가 나질 않습니다
그러나 최근 리플부터( 맨 밑에 있는 리플) 지우게 되면 echo값(OK)가 화면에 찍히면서 에러가 납니다.






변종원(웅파) / 2012/07/26 16:22:52 / 추천 0
ajax로 호출을 했는데 화면에 OK가 뜬다는게 이해가 안됩니다. (비동기식)
비동기식으로 호출하면 화면에 OK가 뜰수없습니다. (파이어폭스의 파이어버그의 NET에서나 확인가능합니다.)
화면에 OK가 뜬다는건 그냥 post 전송하셨다는 건데요.

뷰에서 OK 말고 FAIL도 조건문으로 넣어 보세요. php 에러메세지가 떠도 삭제실패쪽이 실행되어
정확한 결과를 알 수 없습니다.


파이어폭스에 파이어버그 설치하고 NET에서 값이 어떻게 넘어오는지 확인해보세요
ci_chobo / 2012/07/26 17:02:21 / 추천 0
답변 감사합니다
layout 설정을 해서 그런 것 같습니다. / 문제는 해결 됐습니다