테스트 사이트 - 개발 중인 베타 버전입니다

[그누보드4]게시판 리스트에 간단히 다중검색, 멀티검색,복수검색, 여러개 검색을 로직파일 변경없이 스킨자체적으로 가능하도록 합니다.

· 12년 전 · 18613 · 20
subnara_info_20121129_175140.gif
=====================================================================
스킨으로 제작완료 스킨링크주소 : http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=140325
=====================================================================

이미지 위와 같이 다중검색, 멀티검색, 복수검색 가능하도록 합니다.

멀티검색의 조건은 wr_1 ~ wr_10 여분필드에 설정해놓으신 값들의 대한 다중검색입니다.

보통 /bbs/list.php 를 변경해야지만, 가능한 일이나, 그누보드 로직파일을 변경하지 않고,

스킨 디렉토리에 한개의 파일을 인클루드 하는 것만으로 다중검색가능하도록 해보았습니다.

일단,

첨부되어있는 파일의 위치를 쓰고자하는 스킨 디렉토리 내부에 두도록 해야합니다.

만약 basic 스킨을 쓴다면 "/skin/board/basic/lib/skin.lib.php" <-- 요렇게 위치되도록 합니다.

그러고 나서 스킨폴더 구성파일 중 list.skin.php 와 view.skin.php 두개 파일 내용중 최상위에 인클루드 하면 됩니다.

include_once("$board_skin_path/lib/skin.lib.php");


그러고 보통 list.skin.php 에 내용중 검색 서치 폼의 소스를 보면 (basic 기준으로)
[code]

<!-- 검색 -->
<div class="board_search">
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sca" value="<?=$sca?>">
<select name="sfl">
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="mb_id,1">회원아이디</option>
<option value="mb_id,0">회원아이디(코)</option>
<option value="wr_name,1">글쓴이</option>
<option value="wr_name,0">글쓴이(코)</option>
</select>
<input name="stx" class="stx" maxlength="15" itemname="검색어" required value='<?=stripslashes($stx)?>'>
<input type="image" src="<?=$board_skin_path?>/img/btn_search.gif" border='0' align="absmiddle">
<input type="radio" name="sop" value="and">and
<input type="radio" name="sop" value="or">or
</form>
</div>
[/code]
위와 같이 소스가 되어있는데요. 여기에 만약에 wr_1 에 연락처를 검색 조건에 넣고 싶다면 그냥 input 폼 name을 wr_1로만 해놓으시면 됩니다. 다만, 검색어에 필수 입력값 "required"를 빼셔야, 검색어 없이 썼을때 검색, 폼 전송(submit) 되실겁니다.

아래의 소스는 연락처를 추가한 검색입니다.
[code]
<div class="board_search">
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sca" value="<?=$sca?>">
연락처 : <input type="text" name="wr_1" value='<?=$_GET[wr_1]?>'>
<select name="sfl">
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="mb_id,1">회원아이디</option>
<option value="mb_id,0">회원아이디(코)</option>
<option value="wr_name,1">글쓴이</option>
<option value="wr_name,0">글쓴이(코)</option>
</select>
<input name="stx" class="stx" maxlength="15" itemname="검색어" value='<?=stripslashes($stx)?>'>
<input type="image" src="<?=$board_skin_path?>/img/btn_search.gif" border='0' align="absmiddle">
<input type="radio" name="sop" value="and">and
<input type="radio" name="sop" value="or">or
</form>
</div>
[/code]
여기에다가 예를 들어 wr_2 를 회사명으로 하고, 검색폼에 또 추가하고 싶다면 또 아래와 같이 하시면 됩니다.
[code]
<div class="board_search">
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sca" value="<?=$sca?>">
연락처 : <input type="text" name="wr_1" value='<?=$_GET[wr_1]?>'>
회사명 : <input type="text" name="wr_2" value='<?=$_GET[wr_2]?>'>
<select name="sfl">
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="mb_id,1">회원아이디</option>
<option value="mb_id,0">회원아이디(코)</option>
<option value="wr_name,1">글쓴이</option>
<option value="wr_name,0">글쓴이(코)</option>
</select>
<input name="stx" class="stx" maxlength="15" itemname="검색어" value='<?=stripslashes($stx)?>'>
<input type="image" src="<?=$board_skin_path?>/img/btn_search.gif" border='0' align="absmiddle">
<input type="radio" name="sop" value="and">and
<input type="radio" name="sop" value="or">or
</form>
</div>
[/code]


1. 첨부된 파일 다운받아, 해당 스킨안에 업로드한다.
( basic 스킨 사용시 위치 : /skin/board/basic/lib/skin.lib.php )

2. list.skin.php, view.skin.php 의 최상단에
[code]
//==============================================
include_once("$board_skin_path/lib/skin.lib.php");
//==============================================
[/code]
입력한다

3. list.skin.php 에 해당 wr_1~wr_10 검색 하고자 하는 name명을 가진 input박스 타입이 text든, select든 checkbox 든 다 상관없이, 입력한다. 단 stx 에 "required"는 제외 시킨다. (위 소스 참조)


단 주의할 점은,,,,

list 쿼리를 다시 한번더 해서 검색하므로, 엄청 많은 데이터가 존재하는 게시판에서는 속도 저하가 발생 할 수있습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 20개

12년 전
skin.lib.php에 42번째줄에 아래의 소스를
$str = append_sql($str, " and ", " {$search_arr[name][$j]} = '{$search_arr[val][$j]}' ");

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
$str = append_sql($str, " and ", " {$search_arr[name][$j]} like '%{$search_arr[val][$j]}%' ");

이렇게 like 검색되서 나올거에요
안녕하세요! 올려주신 팁 잘 사용하고 있는데요
날짜검색도 같이 하려고하면 어떻게 해야 하나요 ?
wr_10 에 날짜가 들어있다고 한다면..
기간검색을 하고 싶은데요..
알려주시면 안될까요??
좋아요~
구인게시판 같은 곳에서
성별 남자를 검색하면
남자와 무관이 동시에 나타나는데
이는 어떻게 나타내면 좋을까요 ㅠㅜa
감사 합니다 아주 잘됩니다 !!!
$ex10_filed = explode("|",$write[wr_10]);
$ext10_00 = $ex10_filed[0];
$ext10_01 = $ex10_filed[1];
$ext10_02 = $ex10_filed[2];
$ext10_03 = $ex10_filed[3];
$ext10_04 = $ex10_filed[4];
$ext10_05 = $ex10_filed[5];
$ext10_06 = $ex10_filed[6];
$ext10_07 = $ex10_filed[7];
$ext10_08 = $ex10_filed[8];
$ext10_09 = $ex10_filed[9];

wr_1 ~ wr_10까지 잘 되고 있습니다.
그런데 위의 경우처럼 ext10_00 에서만 검색을 하려면 어떻게 해야하나요.

감사합니다.
10년 전
스크렙합니다. 감사합니다.
두번쿼리가 단점이긴 하네요

두번쿼리가 부담인사람들을 위해
리스트 파일을 하나더 만들어 주실 의향은 없으시옵니까?
원본은 백업하고 덮어쓰도록요.
여기서 체크박스를 통해 다중검색을하려면 어떤식으로 해줘야하나요ㅠㅠ
8개월 전

.

게시글 목록

번호 제목
34706
34693
34563
34536
34521
34480
34479
34466
34437
34436
34435
34406
34398
34387
34382
34375
34364
34336
34294
34293