키워드 검색시 띄워쓰기한 키워드 처리 부분 채택완료
강력드라이브
2년 전
조회 2,704
안녕하세요.
그누보드5 내 검색창에서 검색시 띄어쓰기로 2단어 또는 여러단어 검색시 처리를 어떻게 해주어야 하는지요?
예를들어
검색창에
"그누보드 영카트" 검색하면
그누보드+영카트 이렇게 get으로 넘어가는데
조건문을 for 문으로 돌려 만들어 조건문으로 추가를 해주어야 할거 같은데
처리문장을 잘 못만들겠네요ㅠ
</p>
<p>if ($keyword) {
if (strpos($keyword, "+")) {
$search_keyword = explode("+", $keyword)
$keyword_count = count($search_keyword)
for($n =0; $n<$keyword_count; $n ) {
$sql .= " AND (CONCAT(wr_area1, wr_area2, wr_area3) like '%".$keyword[$n]."%')";
}
} else {
$sql .= " AND (CONCAT(wr_area1, wr_area2, wr_area3) like '%".$keyword."%')";
}
}</p>
<p>
이래저래 해봤는데 이렇게 하면 띄어쓰기한 검색어 조건식이 될까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 4개
채택된 답변
+20 포인트
2년 전
아이키스님 답변으로 해결이 되었다는 말인가요?
제가 보기엔 코드가 잘못 된 것으로 보이는데요
주소창에 +로 보인다고 해서 검색어에서 +를 찾으면 없을텐데요?
다음처럼 해보세요
if (strpos($keyword, "+")){ ===> 수정
$keyword = trim($keyword);
if (strpos($keyword, " ")){
$search_keyword = explode(" ", $keyword);
다음행 마지막에 세미콜론 빠졌네요
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
+는, 대게 공백으로 바뀌어 있습니다.
lib/common.lib.php
get_sql_search() 함수에서
// 검색어를 구분자로 나눈다. 여기서는 공백
$s = array();
$s = explode(" ", $search_text);
여기서 해 보세요