CI 묻고 답하기

제목 CI에서의 검색결과 차이에 대한 질문.
글쓴이 닥스훈트 작성시각 2012/06/28 17:10:49
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 14314   RSS
 CI로 같은 게시판 프로그램을 만들고 있는데요, 검색 기능을 넣는 도중 궁금한 점이 발견되었습니다.

예를 들어 다음과 같이 레코드가 있을 때

----------------------------------------------------------
번호 |  제목          |  날짜    | 조회수
----------------------------------------------------------
6       | 지구3                   |  6-28    | 3
----------------------------------------------------------
5       | 지구2                   |  6-28    | 1
----------------------------------------------------------
4       | 지구1                   |  6-28    | 2
----------------------------------------------------------
3       | 이승골노래           |  6-28    | 1
----------------------------------------------------------

___________ 검색


제목과 내용 필드 모두를 필터로 했을때(like_or 사용) 만약 '지구' 라는 키워드로 검색을 한다면

6,5,4 번의 글이 나와야 하는데요, 모델에서는 다음과 같이 코드를 짰습니다.


 
function search_movieclip($term){
 $this->db->like('subject', $term);
 $this->db->or_like('content', $term);
 $query = $this->db->get('mboard');
 $this->db->order_by('id', 'desc');
 $contents = $query->row();
 return $contents;
}
 

그런데 이렇게 했더니 출력 결과가 이렇게 나왔습니다. (print_r 사용)

stdClass Object
(
    [id] => 25
    [listorder] => 0
    [subject] => 지구
    [w_date] => 2012-06-28
    [views] => 0
    [m_url] => 지구
    [content] => 지구
)

이는 예상과 다른 출력 결과 인데요... 왜 그런가 해서 다시 모델쪽 코드를 아래와 같이 바꿨습니다.


 
function search_movieclip($term){
 $this->db->like('subject', $term);
 $this->db->or_like('content', $term);
 $query = $this->db->get('mboard');
 $this->db->order_by('id', 'desc');
 $contents = $query->result_array();
 return $contents;
}

그랬더니 이번엔 아래와 같이 정상적으로 나오더군요.


----------------------------------------------------------
번호 |   제목           |  날짜    | 조회수
----------------------------------------------------------
6       | 지구3                   |  6-28    | 3
----------------------------------------------------------
5       | 지구2                    |  6-28    | 1
----------------------------------------------------------
4       | 지구1                   |  6-28    | 2
----------------------------------------------------------

즉 $contents = $query->row(); 를 $contents = $query->result_array(); 로 바꾸어준것 밖에 없는데요

제가 알기론    $query->row(); 가 쿼리의 결과를 한줄만을 받는 것으로

 $query->result_array() ;는 배열을 받는 것으로 알고 있는데요


제가 알고 있는 이 차이점이 확실한건지요?


 다음글 엑티브 레코드 와 일반 쿼리 (3)
 이전글 CSS나 js파일 어떻게 관리하세요? (6)

댓글

한대승(불의회상) / 2012/06/28 17:57:39 / 추천 0
한 줄만 배열로 받고 싶을 땐 row_array()
배열 대신 object로 받고 싶을땐 result()

를 사용 합니다.
닥스훈트 / 2012/06/29 21:10:01 / 추천 0
 감사합니다... 이젠 확실히 두개의 용도를 알겠어요.