다중검색할 수 있게 하고 싶어요
본문
저는 다중검색하는 방법을 찾았는데 그누스터디 사이트에서 여분필드 검색하는 방법 알게 되었습니다.
보고 따라 하다가 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; 이것을 넣어서 어떻게 나오는지 출력되는 코드를 올려보세요