검색 sql문 질문 채택완료
제품 검색을 했을때
</p>
<p>if ($q) {
$arr = explode(" ", $q);
$detail_where = array();
for ($i=0; $i<count($arr); $i++) {
$word = trim($arr[$i]);
if (!$word) continue;</p>
<p> $concat = array();
if ($search_all || $qname)
$concat[] = "a.it_name";
if ($search_all || $qexplan)
$concat[] = "a.it_explan2";
if ($search_all || $qid)
$concat[] = "a.it_id";
if ($search_all || $qbasic)
$concat[] = "a.it_basic";
$concat_fields = "concat(".implode(",' ',",$concat).")";</p>
<p> $detail_where[] = $concat_fields." like '%$word%' ";</p>
<p> }</p>
<p> $where[] = "(".implode(" and ", $detail_where).")";
}</p>
<p>
이런 where 절로 검색이 되잖아용~?
제가 궁금한게,
만약에
쥬스 500이라고 검색으로 하면
상단의 sql문에 의하면 (it_name 을 예로 들면)
it_name에 쥬스을 포함하는것 과 it_name에 500을 포함된것들을 노출시키잖아요.
그렇게 말고
쥬스 500 을 검색했을때
it_name에 쥬스와 500이 모두 포함된것들을 노출시키고 싶어요 ㅠ
어떻게 해야되나요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
4년 전
$where[] = "(".implode(" and ", $detail_where).")";
$where[] = "(".implode(" or ", $detail_where).")";
and 를 or 로 바꾸세요
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
4년 전
$arr = explode(" ", $q);이부분이 검색어를 " " 기준으로 문장을 배열(=단어)로 분리하는데, 분리된 문장으로 각자 검색하고 있기 때문입니다.이부분을 $arr[0] = $q;로 변경하시면 될듯요
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택