개발 Q&A

제목 사이트 전체 통합 검색 작업중 9%부족한 부분이 있습니다.
글쓴이 꾸숑 작성시각 2013/04/27 04:54:08
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 15008   RSS

아래 소스는는 웅파님의 포럼소스를 응용해서 작업하고 있습니다.
foreach문의 마지막 루푸에서 출력되는 UNION을 제거 해야 합니다.
그렇지 않으면 오류가 발생하는군요 그것만 해결하면 작동 되는것을 확인 했습니다.
php지식이 딸리다보니 다 만들어 놓고 좌절하네요 ~~

 function search_list($page, $rp, $post)
 {
  $field = " num, content, subject, name, wr_user_id, view, comments, wdate ";
        $where = " WHERE (subject like \"%".$post['s_word']."%\" or content like \"%".$post['s_word']."%\")";

  $sql = "SELECT b.nickname, a.table, a.tbn, a.num, a.content, a.subject, a.name, a.wr_user_id, a.view, a.comments, a.wdate from ( ";
//////////////////////////////////////////////////////
   $this->db->select("id, board_name");
   $query = $this->db->get('board_admin');
   foreach($query->result() as $row){
  $sql.= "(SELECT '$row->board_name' as 'table', '$row->id' as 'tbn', ".$field." FROM $row->id ".$where.") UNION ";
   }
/////////////////////////////////////////////////////////
  $sql.= ") as a, users b where a.wr_user_id=b.username order by wdate desc limit $page, $rp";

    $rs = $this->db->query($sql);
    return $rs->result_array();
 }

 

태그 union,search,포럼,통합검색,검색
 다음글 helper('download') 질문이요~ (1)
 이전글 APM 환경구축 어렵군요. (2)

댓글

꾸숑 / 2013/04/27 05:08:00 / 추천 0
아래 처럼 하니 해결이 되었습니다.
이해가 않되는것은 아래 처럼 하면 논리적으로 생각하면 중복 검색이 될것 같은데
결과는 중복 검색이 되지 않고 제대로 출력 되는군요

내부적을 중복 검색값을 출력 않하는것인지 궁금하네요

//////////////////////////////////////////////////////
   $this->db->select("id, board_name");
   $query = $this->db->get('board_admin');
   foreach($query->result() as $row){
  $sql.= "(SELECT '$row->board_name' as 'table', '$row->id' as 'tbn', ".$field." FROM $row->id ".$where.") UNION ";
   }
   $sql.= "(SELECT '$row->board_name' as 'table', '$row->id' as 'tbn', ".$field." FROM $row->id ".$where.")";
/////////////////////////////////////////////////////////
들국화 / 2013/04/29 11:48:13 / 추천 0
MySQL의 union은 UNION DISTINCT의 줄임 형태 입니다.
즉 중복 제거 되는거죠.
하시만 중복제거는 공으로 되는게 아니니 데이타 양이 많으면 속도가 느리다는 문제가 있습니다.

자주쓰거나 데이타 양이 많타면 가능하면 union을 쓰지 않는것이 좋을것 같습니다.
꾸숑 / 2013/04/29 17:34:58 / 추천 0
들국화//
의문이 해소 되었습니다.
감사합니다.
더 좋은 방법이 있다면 제시 해주시면 감사하겠습니다.
조금 힌트를 주신다면 그 방향으로 한번 학습해 보겠습니다.

열공!