다중검색할 수 있게 하고 싶어요

다중검색할 수 있게 하고 싶어요

QA

다중검색할 수 있게 하고 싶어요

본문

저는 다중검색하는 방법을 찾았는데 그누스터디 사이트에서 여분필드 검색하는 방법 알게 되었습니다.

보고 따라 하다가 wr_1 한개로 검색은 잘되었는데 wr_1+wr_2에서 검색을 되지 않습니다.

 

이 내용은 그누스터디에서 가져 왔습니다.

 

 bbs/search.php 파일 수정

 

빨간색 부분 위치에 case 'wr_1' :, case 'wr_2' : 추가

부연 설명을 드리면 현재 저 위치에 추가하면 해당 필드 내용 중 검색어가 포함되어 있으면 검색되고

검색어와 일치하는 것만 검색되게 하고 싶으면 저 위치가 아니라

case 'wr_name' :

여기 밑에 줄에 넣어야 합니다.

 

// 필드의 수만큼 다중 필드 검색 가능 (필드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' :

        case 'wr_1' :

        case 'wr_2' :

            if (preg_match("/[a-zA-Z]/", $search_str))

                $str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";

            else

                $str .= "INSTR({$field[$k]}, '{$search_str}')";

            break;

            ...................

            ...................

            ...................

 

게시판 스킨 list.skin.php 파일 하단 검색 부분에 추가하면 됩니다.

​wr_1||wr_2 ​ 등으로 구분을 해서 원하는 조합으로 추가할 수 있습니다.

 

<select name="sfl" id="sfl">

    <option value="wr_1"<?php echo get_selected($sfl, 'wr_1'); ?>>여분필드1</option>

    <option value="wr_2"<?php echo get_selected($sfl, 'wr_2'); ?>>여분필드2</option>

    <option value="wr_1||wr_2"<?php echo get_selected($sfl, 'wr_1||wr_2'); ?>>여분필드1+여분필드2</option>

    <option value="wr_subject"<?php echo get_selected($sfl, 'wr_subject', true); ?>>제목</option>

    <option value="wr_content"<?php echo get_selected($sfl, 'wr_content'); ?>>내용</option>

이 질문에 댓글 쓰기 :

답변 1

list.skin.php에서 검색은 search.php(사이트 전체검색)와 관계 없습니다(list.php에서 처리하므로)

빨간색 부분만 있으면 자동으로 처리 됩니다

안된다면 스킨 상단에 echo $sql; 이것을 넣어서 어떻게 나오는지 출력되는 코드를 올려보세요

 

INSTR(wr_2, '20231') or INSTR(wr_3, '20231')
이렇게 나으는 것은 아주 정상입니다
wr_2 또는 wr_3에  20231이 포함되어있는지  를 검색합니다
하고싶은 것이  이것이 아니면 어떤 동작인가요?

게시판 여분필드로 이용해서 저는 날짜 년도이랑 월을 검색하고 싶어요 게시판에서 2022년도 작성한 게시물을 찾은 후 거기서 그달에 적힌 달을 찾은 거죠 죄송합니다. 제가 횡설수설로 말을 해서 ㅋㅋ 한마디로 wr_1(2022년)+wr_2(1월)=2022년 1월 이렇게 검색이 되로록 하고 싶어요 ㅠㅠ

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

회원로그인

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