전체검색 - 여분필드 입력분이 검색이 안됩니다. 채택완료
질문 그대로 첫페이지에 전체검색 부분이 있습니다.
그런데 문제는
여분필드를 이용해서 삽입한 내용이 검색이 안됩니다.
[테스트]
https://dongtan2go.com/">https://dongtan2go.com/
첫페이지에서
검색어: 보쌈
검색결과를 보면 여분필드로 삽입한 부분은 검색이 안되고 글쓰기 부분으로 입력한 부분만 검색이 됩니다.
원래 여분필드는 검색이 안되나요?
답변 4개
모두 답변 감사합니다.
하라는대로 다 입력 한것 같은데 여전히 여분필드는 검색에서 안나오네요.
index.php 파일
<div class="hd_sch_wr">
<fieldset id="hd_sch" >
<legend>사이트 내 전체검색</legend>
<form name="fsearchbox" method="get" action="<?php echo G5_BBS_URL ?>/search.php" onsubmit="return fsearchbox_submit(this);">
<input type="hidden" name="sfl" value="wr_subject||wr_content||wr_1||wr_2||wr_3||wr_4||wr_5">
<input type="hidden" name="sop" value="and">
<label for="sch_stx" class="sound_only">검색어 필수</label>
<input type="text" name="stx" id="sch_stx" maxlength="20" placeholder="검색어를 입력해주세요">
<button type="submit" id="sch_submit" value="검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
</form></p>
<p> <script>
function fsearchbox_submit(f)
{
if (f.stx.value.length < 2) {
alert("검색어는 두글자 이상 입력하십시오.");
f.stx.select();
f.stx.focus();
return false;
}</p>
<p> // 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
var cnt = 0;
for (var i=0; i<f.stx.value.length; i++) {
if (f.stx.value.charAt(i) == ' ')
cnt++;
}</p>
<p> if (cnt > 1) {
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return false;
}</p>
<p> return true;
}
</script></p>
<p> </fieldset>
</div>
search.php 파일
</p>
<p>// 필드의 수만큼 다중 필드 검색 가능 (필드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' : //wr_1 추가함 20200504
case 'wr_2' : //wr_2 추가함 20200504
case 'wr_3' : //wr_3 추가함 20200504
case 'wr_4' : //wr_4 추가함 20200504
case 'wr_5' : //wr_5 추가함 20200504
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;
}</p>
<p>

답변에 대한 댓글 2개
dongtan2go.com 첫페이지에 보면 전체검색을 할수 있게 넣었습니다.
- 검색을 하면 전체검색은 잘 됩니다.
- 하지만 여분필드로 추가 해서 넣은 부분은 검색을 못하는 것입니다.
알려주신 소스는 어디에 넣어야 할까요?
좋은 하루 되세요.
댓글을 작성하려면 로그인이 필요합니다.
저기는 여분필드가 wr_1을 썼을경우고요 해당 부분이 여분필드가 다른 필드라면 그에 맞춰 수정해서 반영해 주시면 됩니다.
댓글을 작성하려면 로그인이 필요합니다.
/bbs/search.php 파일에 아래 부분을 수정해줘야 합니다.
switch ($field[$k]) {
case 'mb_id' :
case 'wr_name' :
$str .= "$field[$k] = '$s[$i]'";
break;
case 'wr_subject' :
case 'wr_content' :
case 'wr_1' :
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;
}
답변에 대한 댓글 2개
다른 필드인 경우 해당 필드를 추가해줘야 합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
혹시 검색에서 여분필드 내용이 안나온다고 하시는 거면..
bbs\search.php 파일에서..
$list[$idx][$i]['wr_1'] = $row['wr_1']; 추가해주고..
skin\search\basic\search.skin.php 파일에..
<?php echo $list[$idx][$i][wr_1'] ?> 등도 추가해줘야 합니다.