CI 묻고 답하기

제목 ㅠ,ㅠ 죄송합니다 조회수 다시 질문 드립니다.
글쓴이 amkor 작성시각 2013/10/01 10:07:26
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 12918   RSS
 조회수가 되긴 되는데요 ㅠ,ㅠ

일단 소스 보여드리겠습니다.

model

    
//view
    function view_entry($board_id,$board_hit)
    {     
    
    $this->db->where('no', $board_id);
    $this->db->update('board', array('hit'=>$board_hit +1 )); 
       return $this->db->get_where('board' , array('no'=>$board_id))->row();  
    }  


일단 id값 받아와서 해당되는 부분 판단하고  hit 값도 받아와서 그걸 +1 하니깐 자동적으로 1씩 증가됩니다.

하지만 문제는 새로 글쓰기 할때 조회수 hit 값이 0도 아닌 아무것도 안적혀

위에 같은 조회 할시 가져와야할 hit값이 null값으로 가져오니깐  문제가 발생됩니다.

이럴때 어떻게 하면 좋은가요. 일단 model 쓰기 부분 보여드리겠습니다.




//write
    function write_entry()
    {       
       $this->title = $_POST['title'];
       $this->memo = $_POST['memo'];
       $this->name = $_POST['name'];
       $this->date = date("Y-m-d H:i:s",time());
       $this->db->update('board' , array('hit'=>0));  <--이쪽입니다.
       $this->db->insert('board', $this);
    }


일단 제가 강제로 hit값을  0으로 해놨는데요.

오류가 나면서 다른글 모두가 조회수 0으로 변하네요ㅜㅜ

정작 내가 쓴 글은 조회수가 null값으로 나오고 ㅠ,ㅠ 

이것도 id값을 가져와서 구별할려고 하니 글쓰기라 안되고 가져올수 없고 ㅠ,ㅠ

도움 부탁드립니다.















 







 다음글 페이지 보안에 대해.. (5)
 이전글 기초가 안되서 ㅠ,ㅠ 조회수 다시 질문 드립니다. (1)

댓글

milosz / 2013/10/01 10:13:08 / 추천 0
메뉴얼을 참고하셔서 $_POST를 $this->input->post()로 먼저 변경하세요.
그리고 hit에 0을 넣고 싶으면 위에 작성한 $this->name = $_POST['name']; 처럼 $this->hit = 0;이렇게 넣으시면 됩니다.

현재 작성한 소스에 대한 이해 없이 답만 찾아 작성하면 아무런 도움이 되질 않습니다. 메뉴얼을 처음부터 꼼꼼하게 읽어보세요.

들국화 / 2013/10/01 10:14:44 / 추천 0
이런말 드리긴 좀 그런데요.. 그래서 답변을 안달고 있었는데...

지금 공부중이신 거에요? 아니면 일로 하시는지 궁금 하네요.

그냥 이렇케 안된다고 질문해서 하나 해결하고 하나 해결해서는 앞으로 더 힘들어질것 같구요...

ci책이 아니더라도 기본적으로 게시판 정도 만드는 프로그래밍 책을 처음부터 차근차근 한번 읽어 보시고 따라서 하나 만들어 본다음에 CI메뉴얼을 한번 정독 한후에 그래도 잘 모르겠다면 그때 질문해 주시면 좋을듯 하네요.
amkor / 2013/10/01 10:33:27 / 추천 0
 감사합니다 이렇게 쉬운것을 ㅠ,ㅠ  말씀하신 내용 참고하도록 하겠습니다 ㅠ,ㅠ 감사합니다
빛그림 / 2013/10/01 11:21:15 / 추천 0
hit필드의 값이 0이 아닌 null일때 에러가 발생되는 것이라면 조건문을 이용해서 UPDATE 쿼리 실행을 하기전에 hit의 값이 null일 경우 0으로 처리시켜주도록 하시면 될것 같습니다.
그러면 hit가 0 또는 numeric형태로 들어올 경우에는 정상적으로 1을 더해서 업데이트를 하고, null형태로 들어올 경우에는 0으로 간주하여 1을 업데이트 하도록 하는 로직이 됩니다.
milosz / 2013/10/01 11:42:29 / 추천 0
일반적으로는 스키마에서 해당 필드의 default를 0으로 지정해주는 방식으로 처리합니다.
들국화 / 2013/10/01 13:14:07 / 추천 0
milosz님 처음에 적은것 것 처럼..... 순서의 문제가 있고

업데이트 하는데 조건이 없는 문제 입니다.

디비에 디폴트를 0으로 하거나 초기 인서트시에 값을 지정해 주면 되겠죠..