3단 카테고리 검색 게시판에서 전체검색 추가 방법 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

3단 카테고리 검색 게시판에서 전체검색 추가 방법 정보

3단 카테고리 검색 게시판에서 전체검색 추가 방법

본문

1_copy1.gif
 
위 그림과 같은 3단 카테고리 게시판에서 3번째 셀렉트 박스에
 
물품선택 항목에 "오토바이"에서 부터 "기타"까지 전항목을 검색할 수 있게
 
"전체"를 삽입하고 싶은데 잘 되지를 않네요.
 
<option value=''>전체</option> 이런 식으로 제일위에 추가해보면
 
아래와 같은 에러가 발생합니다. 
 
이거 어떻게 해야 합니까?
 
쩐(포인트)이 부족하여 많이 걸지를 못합니다.
 
위 방법은 제가 여차로 해본 것이고
 
어떤 방법이 있는지요.
 
 
-------------에러내용------------------
select distinct wr_parent from g4_write_bands02 where and (wr_num between '-2' and '9998')
 
1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'and (wr_num between '-2' and '9998')' at line 1
 
error file : /bbs/board.php
  • 복사

댓글 전체

다중검색폼을 무엇을 썻는지 알수가 없네요. 현제 그누보드 그되로는 힘들것으로 예상이 됩니다.
지금 보여주신 내용은 어떤 곳에서 발취하여 응용해서 삽입하였는지 내용이 필요하구요.
검색 필드마다 list.php에서 검색 필드 구문에러인데 상기의 에러는 물품선택에 특정값이 존재하여하 하는 구조 같습니다.
<option value='%'>전체</option> 이렇게 한번해보세요 하지만 해결은 힘들것입니다. 전체 구성을 올려주세요
먼저 답변 감사드립니다.
list.skin.php파일에서  config.list_select3.php파일을 인크루드하여 쓰는 구조입니다.
위에서 언급하신  <option value='%'>전체</option> 방법은 되지를 않는군요.

아래 두개의 파일소스를 올렸습니다.
소스한번 검토하여 주시면 고맙겠습니다.
(yesmore님의 학원매매 스킨수정한것입니다.)
http://www.sir.co.kr/bbs/tb.php/g4_skin/22309/e70d568ed2e31ec7a53ed1f6e0996059





------------list.skin.php 파일 소스입니니다.------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 9;
if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
if ($is_admin) $colspan++;  // 관리자이면 '조회' 표시

// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.
// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr>
?>

<link rel='stylesheet' type='text/css' href='<?=$board_skin_path?>/bstyle.css'>

<!----------- { 레이아웃 테이블 시작 } --------------------------------------//-->
<table width="<?=$width?>" align="center" cellpadding="0" cellspacing="0"><tr><td>


<? //---------- 일정기간이 지나면 '급매물,추천/굵게표시' 게시물 모두 '일반게시물'로 전환

$day_chk = "7";  // 체크 기간 날짜
$cnd_chk = " wr_1 <> '3' ";  // 쿼리 추가 조건 설정
$sql_chk = " update $write_table set wr_1='3' where $cnd_chk and date_add(wr_datetime, INTERVAL '$day_chk' DAY) < now() ";
sql_query($sql_chk);


if ($board['bo_notice']) {
$bo_notice = '';
$notice_array = explode("\n", trim($board['bo_notice'])); // 공지사항의 wr_id를 배열로 저장합니다.

for ($i = 0; $i < count($notice_array); $i++) {
$wr_qry = "select count(wr_id) as cnt from $write_table where wr_id = $notice_array[$i] and wr_1 = '3'";
$rs = mysql_query($wr_qry);
if ($rs) {
$rs_cnt = mysql_fetch_array($rs);
if ($rs_cnt[0] == 1) {
} else {
$bo_notice .= $notice_array[$i] . '\n';
}
}
}

sql_query(" update {$g4['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}'");
}
//---------- 일정기간이 지나면 '급매물,추천/굵게표시' 게시물 모두 '일반게시물'로 전환 끝
?>

<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr height="25">

    <? if ($is_category) { ?>
<form name="fcategory" method="get">
<td align='left' width='140' nowrap>매매구분:<select name=sca onchange="location='<?=$category_location?>'+this.value;">
<option value=''>전체</option>
<?=$category_option?></select>
</td></form>
<? } ?>

<td align='left' width=''>

<!------- 지역카테고리별 검색 처리 시작 -->
<? include "{$board_skin_path}/config.list_select3.php"?>
<!------- 지역카테고리별 검색 처리 끝 -->

</td>

    <td align="right" width='180' nowrap>
        게시물 <?=number_format($total_count)?>건
        <? if ($rss_href) { ?><a href='<?=$rss_href?>'><img src='<?=$board_skin_path?>/img/btn_rss.gif' border=0 align=absmiddle></a><?}?>
        <? if ($admin_href) { ?><a href="<?=$admin_href?>"><img src="<?=$board_skin_path?>/img/admin_button.gif" title="관리자" width="54" height="18" border="0" align="absmiddle"></a><? } ?></td>
</tr>
<tr><td height=5></td></tr>
</table>


<!-- 제목 테이블 -->
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<form name="fboardlist" method="post">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sfl"  value="<?=$sfl?>">
<input type="hidden" name="stx"  value="<?=$stx?>">
<input type="hidden" name="spt"  value="<?=$spt?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="sw"  value="">

<tr height="28">
    <td width="50" align="center" class="b_bg"><span class='b_tit'>번호</span></td>
<td width="55" align="center" class="b_bg"><span class='b_tit'>매매구분</span></td>
<td width="90" align="center" class="b_bg"><span class='b_tit'>지역</span></td>
<!--
    <? if ($is_category) { ?><td width="100" align="center" class="b_bg"><span class='b_tit'>분류</span></td><? } ?>
--//-->
    <? if ($is_checkbox) { ?><td width="40" align="center" class="b_bg"><INPUT onclick="if (this.checked) all_checked(true); else all_checked(false);" type=checkbox></td><? } ?>
    <td align="center" class="b_bg"><span class='b_tit'>제목</span></td>

    <td width="50" align="center" class="b_bg"><span class='b_tit'>물품명</span></td>
<td width="60" align="center" class="b_bg"><span class='b_tit'>신품/중고</span></td>
    <td width="55" align="center" class="b_bg"><span class='b_tit'>생산년도</span></td>

    <!--<td width="90" align="center" class="b_bg"><span class='b_tit'>글쓴이</span></td>--//-->
    <td width="50" align="center" class="b_bg"><?=subject_sort_link('wr_datetime', $qstr2, 1)?><span class='b_tit'>등록일</span></a></span></td>
    <td width="50" align="center" class="b_bg"><span class='b_tit'>현상태</span></td>
    <? if ($is_admin) { ?><td width="40" align="center" class="b_bg"><?=subject_sort_link('wr_hit', $qstr2, 1)?><span class='b_tit'>조회</span></a></td><? } ?>
    <? if ($is_good) { ?>
<td width="40" align="center" class="b_bg"><?=subject_sort_link('wr_good', $qstr2, 1)?><span class='b_tit'>추천</span></a></td><? } ?>
    <? if ($is_nogood) { ?>
<td width="40" align="center" class="b_bg"><?=subject_sort_link('wr_nogood', $qstr2, 1)?><span class='b_tit'>비추천</span></a></td><? } ?>
</tr>


<!-- 게시판 목록 시작 -->
<? for ($i=0; $i<count($list); $i++) { ?>

<!--------------- 여유필드 변수값 -----------------------//-->
<?
// 주소입력값을 다시 쪼개어, '지역구'까지만 출력토록 함.
$ex3_filed = explode("|", $list[$i][wr_3]);
$ext3_02  = explode(" ", $ex3_filed[2]);
//echo $ext3_02[0] . "-" . $ext3_02[1]; {아래 주소표시부분에 위치)

//--보증금/월세/권리금
$ex7_filed = explode("|",$list[$i][wr_7]);
$ext7_00  = $ex7_filed[0];
$ext7_01  = $ex7_filed[1];
$ext7_02  = $ex7_filed[2];

//-- 학원분류
$ex6_filed = explode("|",$list[$i][wr_6]);
$ext6_00  = $ex6_filed[0];
//$ext6_01  = $ex6_filed[1]; {원생수}
?>
<!--------------- 여유필드 변수값 끝 -----------------------//-->

<tr height="26">
    <td align="center">
        <?
        if ($list[$i][is_notice]) // '급매'(공지)일경우,
            echo "<img src=\"$board_skin_path/img/notice_icon.gif\" width=30 height=16>";
        else if ($wr_id == $list[$i][wr_id]) // 현재위치
            echo "<span class='b_num'><b><font color='#FF0000'>{$list[$i][num]}</font></b></class>";
        else
            echo "<span class='b_num'>{$list[$i][num]}</class>";
        ?>
</td>
<td align="center"><font color=#0000FF><?=$list[$i][ca_name]?></font></td>
<!--------------- 여유필드(주소출력) 추가 1 -----------------------//-->
<td align="center">
<?echo $ext3_02[0] . "-" . $ext3_02[1]; ?>
</td>
<!--------------- 여유필드 추가 1 끝-----------------------//-->

<!--
    <? if ($is_category) { ?><td width="100" align="center"><a class='b_ca' href="<?=$list[$i][ca_name_href]?>"><?=$list[$i][ca_name]?></a></td><? } ?>
--//-->
    <? if ($is_checkbox) { ?><td width="40" align="center"><input type=checkbox name=chk_wr_id[] value="<?=$list[$i][wr_id]?>"></td><? } ?>
    <td style='word-break:break-all;'>
        <?
        echo $nobr_begin;
        echo $list[$i][reply];
        echo $list[$i][icon_reply];
        if ($list[$i][is_notice]) {  // 급매물(공지)
        echo "<a class='notice' href='{$list[$i][href]}'>";
            echo "<img src=\"$board_skin_path/img/icon_level01.gif\" width=15 height=15 align='absmiddle'>&nbsp;{$list[$i][subject]}";
        echo "</a>";
}
        else if ($list[$i][wr_1] == "1") {  // 추천매물
        echo "<a class='notice2' href='{$list[$i][href]}'>";
echo "<img src=\"$board_skin_path/img/icon_level02.gif\" width=15 height=15 align='absmiddle'>&nbsp;{$list[$i][subject]}";
echo "</a>";
}
    else if ($list[$i][wr_1] == "2") {  // 굵게
echo "<a class='notice3' href='{$list[$i][href]}'>{$list[$i][subject]}</a>";
}
        else {  // 일반 게시물
echo "<a class='b1' href='{$list[$i][href]}'>{$list[$i][subject]}</a>";
}



        if ($list[$i][comment_cnt])
            echo " <a href=\"{$list[$i][comment_href]}\"><span style='font-size:7pt;'>{$list[$i][comment_cnt]}</span></a>";

        // if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; }
        // if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; }

        echo " " . $list[$i][icon_new];
        echo " " . $list[$i][icon_file];
        echo " " . $list[$i][icon_link];
        echo " " . $list[$i][icon_hot];
        echo " " . $list[$i][icon_secret];
        echo $nobr_end;
        ?>
</td>

<!--------------- 여유필드(학원분류/보/임/권) 추가 2 ---//-->
<td align="center"><span class='b2'><?=$ext6_00?></span></td>
    <td align="center"><span class='b2'><?=$ext7_00?></span></td>
   
    <td align="center"><span class='b2'><?=$ext7_02?></span></td>
<!--------------- 여유필드 추가 2 끝 --------------------//-->

    <!--<td align="center"><span class='b2'><?=$list[$i][name]?></span></td>--//-->
    <td align="center"><span class='b2'><?=$list[$i][datetime2]?></span></td>
<td align="center">

<!-- // 거래상태 아이콘 출력 --//-->
<? if($list[$i][wr_4] == "on")  {
echo "<img src='{$board_skin_path}/img/icon_on.gif' border='0' width='47' height='16' align='absmiddle'>";
}
?>
<? if($list[$i][wr_4] == "off") {
echo "<img src='{$board_skin_path}/img/icon_off.gif' border='0' width='47' height='16' align='absmiddle'>";
}
?>

</td>
    <? if ($is_admin) { ?><td align="center"><span class='b2'><?=$list[$i][wr_hit]?></span></td><? } ?>
    <? if ($is_good) { ?><td align="center"><span class='b2'><?=$list[$i][wr_good]?></span></td><? } ?>
    <? if ($is_nogood) { ?><td align="center"><span class='b2'><?=$list[$i][wr_nogood]?></span></td><? } ?>
</tr>
<tr>
    <td colspan="<?=$colspan?>" height="1" bgcolor="#ebebeb"></td>
</tr>
<? } ?>
<? if (count($list) == 0) { echo "<tr><td colspan='$colspan' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>
</form>
</table>

<!-- 페이지 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
    <td height="37" align="center" background="<?=$board_skin_path?>/img/number_line.gif">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
            <td width="100%" align="center">
                <? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/btn_search_prev.gif' width=54 height=18 border=0 align=absmiddle title='이전검색'></a>"; } ?>
                <?
                // 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
                //echo $write_pages;
                $write_pages = str_replace("처음", "<img src='$board_skin_path/img/begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
                $write_pages = str_replace("이전", "<img src='$board_skin_path/img/prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
                $write_pages = str_replace("다음", "<img src='$board_skin_path/img/next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
                $write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
                $write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "<font style=\"font-family:Tahoma, Seoul,굴림; font-size:10pt; color:#797979\">$1</font>", $write_pages);
                $write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<font style=\"font-family:Tahoma, Seoul,굴림; font-size:10pt; color:orange;\">$1</font>", $write_pages);
                ?>
                <strong><?=$write_pages?></strong>
                <? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/btn_search_next.gif' width=54 height=18 border=0 align=absmiddle title='다음검색'></a>"; } ?>
            </td>
        </tr>
        </table></td>
</tr>
</table>

<!-- 버튼 링크 -->
<form name=fsearch method=get style="margin:0px;">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca      value="<?=$sca?>">
<table width=100% cellpadding=0 cellspacing=0>
<tr>
    <td width="50%" height="40">
        <? if ($list_href) { ?><a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/btn_list.gif" border="0"></a><? } ?>
        <? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" border="0"></a><? } ?>
        <? if ($is_checkbox) { ?>
            <a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/btn_select_delete.gif" border="0"></a>
            <a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/btn_select_copy.gif" border="0"></a>
            <a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/btn_select_move.gif" border="0"></a>
        <? } ?>
    </td>
    <td width="50%" align="right">
        <select name=sfl>
            <option value='wr_subject||wr_content'>제목+내용</option>
<option value='wr_subject'>제목</option>
            <option value='wr_content'>내용</option>
            <option value='mb_id'>회원아이디</option>
            <option value='wr_name'>이름</option>
        </select><input name=stx maxlength=15 size=10 itemname="검색어" required value="<?=$stx?>"><select name=sop>
            <option value=and>and</option>
            <option value=or>or</option>
        </select>
        <input type=image src="<?=$board_skin_path?>/img/search_btn.gif" border=0 align=absmiddle></td>
</tr>
</table>
</form>

<!----------- { 레이아웃 테이블 아래. 끝 } --------------------------------------//-->
</td></tr></table>


<script language="JavaScript">
if ("<?=$sca?>") document.fcategory.sca.value = "<?=$sca?>";
if ("<?=$stx?>") {
    document.fsearch.sfl.value = "<?=$sfl?>";
    document.fsearch.sop.value = "<?=$sop?>";
}
</script>

<? if ($is_checkbox) { ?>
<script language="JavaScript">
function all_checked(sw)
{
    var f = document.fboardlist;

    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]")
            f.elements[i].checked = sw;
    }
}

function check_confirm(str)
{
    var f = document.fboardlist;
    var chk_count = 0;

    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
            chk_count++;
    }

    if (!chk_count) {
        alert(str + "할 게시물을 하나 이상 선택하세요.");
        return false;
    }
    return true;
}

// 선택한 게시물 삭제
function select_delete()
{
    var f = document.fboardlist;

    str = "삭제";
    if (!check_confirm(str))
        return;

    if (!confirm("선택한 게시물을 정말 "+str+" 하시겠습니까?\n\n한번 "+str+"한 자료는 복구할 수 없습니다"))
        return;

    f.action = "./delete_all.php";
    f.submit();
}

// 선택한 게시물 복사 및 이동
function select_copy(sw)
{
    var f = document.fboardlist;

    if (sw == "copy")
        str = "복사";
    else
        str = "이동";
                     
    if (!check_confirm(str))
        return;

    var sub_win = window.open("", "move", "left=50, top=50, width=396, height=550, scrollbars=1");

    f.sw.value = sw;
    f.target = "move";
    f.action = "./move.php";
    f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->
-------------------------------------------------------------------------------------------------





----------------------------config.list_select3.php-----------------------------------
<script language="javascript">
<!--//-- 스킨용 : 주소 셀렉트창

//-- wr_3, wr_6 등 중복셀렉트가 가능하게 해주는 함수
//-- 수정작업시, 아래 함수와 함께 write.skin.php에 사용된 '여유필드(wr_?)이름과 셀렉트문'을 가져와 붙이면 바로적용가능
//-- 단, 반드시 게시물리스트(list.skin.php)에 여유필드값이 게시물에 주어져야함.
//-- 중복필드가 필요없는 경우 'document.fsearch_area.srch_type.value'삭제, 셀렉트문삭제, value값에서 영필드명삭제
function onChangeKey() {
document.fsearch_area.stx.value = document.fsearch_area.area_name.value + " " + document.fsearch_area.srch_type.value;
document.fsearch_area.submit();
}

//--> 
</script>

<table cellpadding=0 cellspacing=0 border=0>
<form name=fsearch_area method=get>
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<tr>
    <td>+ 지역검색 :
<input type=hidden name=sfl value="wr_3||wr_6"> 
<select name=area_name>
                <option value="" selected>1차 지역선택</option>
                <option value="서울">서울특별시</option>
                <option value="부산">부산광역시</option>
                <option value="대구">대구광역시</option>
                <option value="인천">인천광역시</option>
                <option value="광주">광주광역시</option>
                <option value="대전">대전광역시</option>
                <option value="울산">울산광역시</option>
                <option value="경기">경기도</option>
                <option value="강원">강원도</option>
                <option value="충북">충청북도</option>
                <option value="충남">충청남도</option>
                <option value="전북">전라북도</option>
                <option value="전남">전라남도</option>
                <option value="경상">경상북도</option>
                <option value="경남">경상남도</option>
                <option value="제주">제주도</option>
              </select>

  <select name=srch_type onChange="onChangeKey()">
<option selected value=''>물품선택</option>
<option value='%'>전체</option>
<option value='오토바이'>오토바이</option>
    <option value='무전기'>무전기</option>
    <option value='PDA'>PDA</option>
    <option value='헬멧'>헬멧</option>
    <option value='적재함'>적재함</option>
    <option value='방한복'>방한복</option>
    <option value='기타'>기타</option>
<!--- <option value='미술.음악.무용'>미술.음악.무용</option>
<option value='체육관.레져'>체육관.레져</option>
<option value='컴퓨터'>컴퓨터</option>
<option value='미용.제과.요리'>미용.제과.요리</option>
<option value='기술.자격증'>기술.자격증</option>
<option value='학원자리-시설'>학원자리-시설</option>
<option value='학원자리-빈상가'>학원자리-빈상가</option>
<option value='고시원.독서실'>고시원.독서실</option>
<option value='기타학원'>기타학원</option>
<option value='기타매물'>기타매물</option>                        ------------------>
</select>
<input type=hidden name=sop value='and'>
<input type=hidden name=stx value=''>
    </td>
</tr>
</form>
</table>
<?
 if ($area_name != "") { $stx = ""; }
?>
------------------------------------------------------------------------------------------
© SIRSOFT
현재 페이지 제일 처음으로