그누보드 검색 기능 질문입니다.

그누보드 검색 기능 질문입니다.

QA

그누보드 검색 기능 질문입니다.

본문

그누보드 검색 기능에서 단어를 2개 밖에 못올리던데 더 많은 단어를 조합하기 위해 푸는 방법이 없을가요? 

 

3750185034_1684670821.7221.png

이 질문에 댓글 쓰기 :

답변 2

자바스크립트쪽도 작업을 해줘야하겠지만. php쪽도 봐주셔야하지 않을까 해서 안내드려봅니다.

/bbs/search.php 69라인쪽을 보시면

 


    $search_query = 'sfl='.urlencode($sfl).'&stx='.urlencode($stx).'&sop='.$sop;
    // 검색필드를 구분자로 나눈다. 여기서는 +
    $field = explode('||', trim($sfl));
    $str = '(';
    for ($i=0; $i<count($s); $i++) {
        if (trim($s[$i]) == '') continue;
        $search_str = $s[$i];
        // 인기검색어
        insert_popular($field, $search_str);
        $str .= $op1;
        $str .= "(";
        $op2 = '';
        // 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
        for ($k=0; $k<count($field); $k++) {
            $str .= $op2;
            switch ($field[$k]) {
                case 'mb_id' :
                case 'wr_name' :
                    $str .= "$field[$k] = '$s[$i]'";
                    break;
                case 'wr_subject' :
                case 'wr_content' :
                    if (preg_match("/[a-zA-Z]/", $search_str))
                        $str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";
                    else
                        $str .= "INSTR({$field[$k]}, '{$search_str}')";
                    break;
                default :
                    $str .= "1=0"; // 항상 거짓
                    break;
            }
            $op2 = " or ";
        }
        $str .= ")";
        $op1 = " {$sop} ";
    }
    $str .= ")";

 

요렇게 되어있을겁니다. $field 값이 조건이니 이부분에 맞게 case별로 추가해서 변경해보시면 더 효율적인 검색이 될듯생각됩니다.


var cnt = 0;
for (var i=0; i<f.stx.value.length; i++) {
    if (f.stx.value.charAt(i) == ' ')
        cnt++;
}
if (cnt > 1) {
    alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
    f.stx.select();
    f.stx.focus();
    return false;
}

 

위의 자바스크립트에서 if (cnt > 1) { 이 부분을 변경하면 됩니다.

1보다 큰수를 넣으면 될 것입니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 27
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT