그누보드 게시판 검색에서 기본검색은 단일값 또는 제목+내용 검색만 제공하는데요.
wr_1 : 성명
wr_2 : 등급
wr_3 : 고유번호
이렇게 입력을 해서, 3가지 모두를 만족하는 게시물만 검색할 수 있게 하고 싶습니다.
[제목+내용] 은 or 검색으로 나오는데요.
wr_1 and wr_2 and wr_3 검색이 되게 하려면 어떻게 하면 될까요?
답변 2개 / 댓글 8개
채택된 답변
+20 포인트
마르스컴퍼니
2024-04-18 (목) 20:10:46
* /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개
마르스컴퍼니
2024-04-18 (목) 20:41:38
지금 코드가 특정 게시판에만 적용하는 코드입니다.
$bo_table == 'aa'
(aa 게시판에만 적용)
$bo_table == 'aa'
(aa 게시판에만 적용)
2024-04-30 (화) 18:51:40
알려주신 팁으로 적용중인데요. 검색 입력란에 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>
마르스컴퍼니
2024-04-30 (화) 19:06:16
[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]
2024-04-30 (화) 20:39:06
알려주신 소스대로 적용해서 실행해보니 (게시판명 :certi1) 검색결과가 나오지 않습니다.
주소창에 찍히는 내용은 아래와 같이 보이네요.
/bbs/board.php?bo_table=certi1&sca=&sop=and&wr_1=김나나&wr_2=1111&wr_3=2222
많이 도와주셨는데, 제가 뭘 잘못한 것인지 검색결과가 나오지 않네요.
주소창에 찍히는 내용은 아래와 같이 보이네요.
/bbs/board.php?bo_table=certi1&sca=&sop=and&wr_1=김나나&wr_2=1111&wr_3=2222
많이 도와주셨는데, 제가 뭘 잘못한 것인지 검색결과가 나오지 않네요.
마르스컴퍼니
2024-04-30 (화) 21:01:40
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
어떤 부분에서 문제가 있는지 살펴 볼 수 있습니다.
2024-04-30 (화) 21:26:26
다시 잘 확인하고, 수정해서 잘 해결 했습니다.
보내주신 소스대로 잘 작동합니다. 감사합니다.
보내주신 소스대로 잘 작동합니다. 감사합니다.
2024-04-30 (화) 19:20:47
채택을 1번밖에 할수 없어서 죄송하네요.
빠른답변 너무 감사 드립니다.
답변을 작성하려면 로그인이 필요합니다.