테스트 사이트 - 개발 중인 베타 버전입니다

키워드 검색시 띄워쓰기한 키워드 처리 부분 채택완료

강력드라이브 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);

다음행 마지막에 세미콜론 빠졌네요

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

지름신2
2년 전

explode 해서 문자 배열 loop 로 like 문 만드시는게 ㅎㅎ

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

어떤 파일을 적업하신 건가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
2년 전
Php에서 GET 값을 받을 때면
+는, 대게 공백으로 바뀌어 있습니다.
lib/common.lib.php
get_sql_search() 함수에서


// 검색어를 구분자로 나눈다. 여기서는 공백
$s = array();
$s = explode(" ", $search_text);

여기서 해 보세요

댓글을 작성하려면 로그인이 필요합니다.

e
2년 전

if (strpos($keyword, "+") !== false) {

이 부분만 수정하면 될 것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

강력드라이브
2년 전
답변 감사드립니다^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인