그누보드 게시판 검색에서 기본검색은 단일값 또는 제목+내용 검색만 제공하는데요.
wr_1 : 성명
wr_2 : 등급
wr_3 : 고유번호
이렇게 입력을 해서, 3가지 모두를 만족하는 게시물만 검색할 수 있게 하고 싶습니다.
[제목+내용] 은 or 검색으로 나오는데요.
wr_1 and wr_2 and wr_3 검색이 되게 하려면 어떻게 하면 될까요?
답변 2개 / 댓글 8개
채택된 답변
+20 포인트
* /bbs/list.php
Copy
if ($sca || $stx || $stx === '0') { //검색이면
$is_search_bbs = true; //검색구분변수 true 지정
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
→
Copy
if ($sca || $stx || $stx === '0' || ($bo_table == 'aa' && $wr_1)) { //검색이면
$is_search_bbs = true; //검색구분변수 true 지정
if ($bo_table == 'aa' && $wr_1)
$sql_search = " wr_1 = '{$wr_1}' and wr_2 = '{$wr_2}' and wr_3 = '{$wr_3}' and wr_is_comment = '0' ";
else
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
답변에 대한 댓글 8개
알려주신 팁으로 적용중인데요. 검색 입력란에 wr_1 부터 wr_3 까지 입력받는 부분은 어떻게 수정해야 할까요? 게시판검색 기본소스에서는 입력을 1개만 받을 수 있게 되어 있어서요.
<fieldset id="bo_sch">
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<option value="wr_1"<?php echo get_selected($sfl, 'wr_1', true); ?>>성명</option>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="frm_input required" size="15" maxlength="20">
<input type="submit" value="검색" class="btn_submit">
</form>
</fieldset>
<fieldset id="bo_sch">
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<option value="wr_1"<?php echo get_selected($sfl, 'wr_1', true); ?>>성명</option>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="frm_input required" size="15" maxlength="20">
<input type="submit" value="검색" class="btn_submit">
</form>
</fieldset>
[code]
<fieldset id="bo_sch">
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
성명 : <input type="text" name="wr_1" value="<?php echo stripslashes($wr_1) ?>" required id="wr_1" class="frm_input required" size="15" maxlength="20">
등급 : <input type="text" name="wr_2" value="<?php echo stripslashes($wr_2) ?>" required id="wr_2" class="frm_input required" size="15" maxlength="20">
고유번호 : <input type="text" name="wr_3" value="<?php echo stripslashes($wr_3) ?>" required id="wr_3" class="frm_input required" size="15" maxlength="20">
<input type="submit" value="검색" class="btn_submit">
</form>
</fieldset>
[/code]
<fieldset id="bo_sch">
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
성명 : <input type="text" name="wr_1" value="<?php echo stripslashes($wr_1) ?>" required id="wr_1" class="frm_input required" size="15" maxlength="20">
등급 : <input type="text" name="wr_2" value="<?php echo stripslashes($wr_2) ?>" required id="wr_2" class="frm_input required" size="15" maxlength="20">
고유번호 : <input type="text" name="wr_3" value="<?php echo stripslashes($wr_3) ?>" required id="wr_3" class="frm_input required" size="15" maxlength="20">
<input type="submit" value="검색" class="btn_submit">
</form>
</fieldset>
[/code]
if ($sca || $stx || $stx === '0' || ($bo_table == 'aa' && $wr_1)) {
→
if ($sca || $stx || $stx === '0' || ($bo_table == 'certi1' && $wr_1)) {
--------------------------------------------------------------------------------
또는
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql);
→
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
echo $sql;
$row = sql_fetch($sql);
을 하면 SQL문을 브라우저에서 확인할 수 있습니다.
해당 SQL문을 DB 에 직접 실행해 보면서 https://sir.kr/g5_tip/15716
어떤 부분에서 문제가 있는지 살펴 볼 수 있습니다.
→
if ($sca || $stx || $stx === '0' || ($bo_table == 'certi1' && $wr_1)) {
--------------------------------------------------------------------------------
또는
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql);
→
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
echo $sql;
$row = sql_fetch($sql);
을 하면 SQL문을 브라우저에서 확인할 수 있습니다.
해당 SQL문을 DB 에 직접 실행해 보면서 https://sir.kr/g5_tip/15716
어떤 부분에서 문제가 있는지 살펴 볼 수 있습니다.
답변을 작성하려면 로그인이 필요합니다.