추가로 만든 필드(wr_6)을 검색될 수 있게 하는 방법 문의
본문
고수님들의 조언을 구합니다.
wr_6을 추가 필드로 사용하면서 데이터를 Text형태로 입력하고 있습니다.
운영을 하려고 하다 보니 wr_6의 데이터가 검색이 되었으면 해서
메인의 검색 부분과 skin으로 설정되는 search 부분에 ||wr_6을 추가해줬는데
검색이 안되네요. ㅠ_ㅠ
제가 아는 방법이 아닌 다른 방법이 있는 건가요?
아니면 데이터를 입력받는 방법을 바꿔야 하는건가요?
많은 지도 편달 부탁드립니다.
답변 6
'||wr_6' 추가가 아닌 'wr_6' 추가입니다.
※ https://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=43
에서 '2. 게시판 목록 하단에 있는 검색에 추가하는 방법'
/bbs/list.php 쿼리 로그를 찍어가면서 디버깅을 하나씩 해보셔야 할거 같아요~
어떻게 해보았는데 안되는 것인지 해본 코드를 알려주면 답변이 쉬워지는데... .
sfl에 wr_6 추가하면 됩니다
안되면 수정한 검색폼과 스킨 상단에 echo $sql;
넣어서 나온 쿼리문 올려보세요
마르스컴퍼니님이 알려주신대로 링크 내용 보고 따라해봤는데요.
제가 뭔가 잘못 추가했나봐요.
skin/search/basic/search.skin.php
<select name="sfl" id="sfl">
<option value="wr_subject||wr_content"<?php echo get_selected($sfl, "wr_subject||wr_6") ?>>제목+태그</option>
<option value="wr_subject"<?php echo get_selected($sfl, "wr_subject") ?>>제목</option>
<option value="wr_5"<?php echo get_selected($_GET['sfl'], "wr_5") ?>>출연진</option>
<option value="wr_6"<?php echo get_selected($_GET['sfl'], "wr_6") ?>>태그</option>
<option value="mb_id"<?php echo get_selected($sfl, "mb_id") ?>>회원아이디</option>
<option value="wr_name"<?php echo get_selected($sfl, "wr_name") ?>>이름</option>
</select>
head.php
<input type="hidden" name="sfl" value="wr_subject||wr_content||wr_6">
bbs/search.php
case 'wr_name' ; 밑에 추가했습니다.
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_5' :
case 'wr_6' :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";
else
$str .= "INSTR({$field[$k]}, '{$search_str}')";
break;
$str .= "$field[$k] = '$s[$i]'";
break;
이후 case문은 모두 유지했구요.
제대로 잘 안되는게 제가 뭔가 잘못한듯 한데.. 봐주셨음 합니다.
여분필드는 아예 검색을 못하네요..ㅠ_ㅠ
하아.. 여분필드 검색이 이렇게 어려운거였나요...
쩝.. 알려주신대로 했는데.. 안되네요..