검색 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;로 변경하시면 될듯요
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
채택
채택
답변대기
채택
답변대기
채택
답변대기
채택
채택
답변대기
채택
채택
채택
채택
채택
답변대기
채택
채택