메인화면 전체통합 검색창에서 여분필드 검색이 안되는 문제
본문
구글링으로 하란건 다헀는데 하..안되네요 ㅠㅠ
1. head.php
<input type="hidden" name="sfl" value="wr_subject||wr_content||wr_1||wr_2||wr_3||wr_4||wr_5">
추가했구요
2. search.php
// 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
for ($k=0; $k<count($field); $k++) {
$str .= $op2;
switch ($field[$k]) {
case 'mb_id' :
case 'wr_name' :
case 'wr_1' :
case 'wr_2' :
case 'wr_3' :
case 'wr_4' :
case 'wr_5' :
$str .= "$field[$k] = '$s[$i]'";
break;
case 'wr_1' :
case 'wr_2' :
case 'wr_3' :
case 'wr_4' :
case 'wr_5' :
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;
이렇게 다 추가했구요
b4s-basic 폴더에 search.skin.php
<option value="wr_subject||wr_content||wr_1||wr_2||wr_3||wr_4||wr_5"<?php echo get_selected($sfl, 'wr_subject||wr_content||wr_1||wr_2||wr_3||wr_4||wr_5') ?>>제목+내용</option>
<option value="wr_1"<?php echo get_selected($_GET['sfl'], "wr_1") ?>>이름</option>
<option value="wr_2"<?php echo get_selected($_GET['sfl'], "wr_2") ?>>번호</option>
<option value="wr_3"<?php echo get_selected($_GET['sfl'], "wr_3") ?>>카톡</option>
<option value="wr_4"<?php echo get_selected($_GET['sfl'], "wr_4") ?>>텔레</option>
<option value="wr_5"<?php echo get_selected($_GET['sfl'], "wr_5") ?>>신청금액</option>
<option value="wr_subject"<?php echo get_selected($sfl, "wr_subject") ?>>제목</option>
<option value="wr_content"<?php echo get_selected($sfl, "wr_content") ?>>내용</option>
저렇게 추가했는데도
1. 통합검색에선 검색이 도저히안됩니다 (메인페이지 젤위에 있는 검색창을 말합니다)
2. 근데 또 [전체검색 결과]창에서 검색하면 여유필드가 검색이 되네요 ㅡ.ㅠ
어디가 문제일까요..?
답변 1
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' :
case 'wr_3' :
case 'wr_4' :
case 'wr_5' :
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;
}
위의 코드로 해당 부분을 교체해 보세요..
저 부분이 잘못 되어 있습니다.