검색폼을 세곳으로.. 가능한 일일까요? > 그누4 질문답변

그누4 질문답변

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

검색폼을 세곳으로.. 가능한 일일까요? 정보

검색폼을 세곳으로.. 가능한 일일까요?

본문

검색폼을 세개로 만들어서 디비와 일치하는 걸 찾아내는 건 할 수 없나요?

## 요놈을....
    <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="mb_id,1">회원아이디</option>
            <option value="wr_name,1">회원이름</option>
          <option value="rdate,1" selected>예약일자</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">
        </form>
    </div>
##################################


### 요렇게
    <div class="board_search">
        <form name="fsearch" method="get">
        <input name="stx" class="stx" maxlength="15" itemname="아이디" required value='<?=stripslashes($stx)?>'>
        <input name="stx" class="stx" maxlength="15" itemname="회원이름" required value='<?=stripslashes($stx)?>'>
        <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">
        </form>
    </div>
########################################################

만약 아이디를 모르면 이름만 입력해도 되구, 아이디는 알아도 예약날짜를 모르면 입력안해도 되고.
아무것도 입력안하고 검색누르면 모조리 쫙 검색....

이런거 구현이 어려운건가요?

이런 검색방식의 소스는 어디가면 얻을 수 있나요?

도와주십쇼~~~~~ ^^

댓글 전체

그 방법이 게시판 하단에 보이는 검색 방법입니다
검색할 필드를 select 로 만들어 선택하게 하면 되죠
다른 방법도 있긴 하지만 이 방법이 서버부하를 줄이는 가장 좋은 방법입니다
우선 같은 이름의 input 은 잘못된 겁니다. 설명 주실려구 그렇게 한건지 모르겠지만요.

가능은 합니다. 균이님이 언급하신 것과 같이 게시판 하단에 보면 제목+내용 으로 검색 하는 부분이 원하시는 부분입니다.

하시려는 부분은 select 와 같이 선택 하는 방법이 아니시니 hidden 으로 해서 sfl 잡으시면 될 것 같네요.

<input type='hidden' name='sfl' value='name|id|date'>

이런 식으로요 그리고 검색 정의 부분은

$sxt = explode("|", $sfl);

$sql_search = " where 1 ";
for ($i=0; $i<count($sxt); $i++)
{
$sql_search .= " and $sxt[$i] like '%$stx%' ";
}

뭐 이런식으로 짜서 추가 하면 되겠네요.

하지만 아무 값도 안 넣었을 때 모든 데이터 쫙 이부분은 따로 하실 필요 없습니다.

리스트 초반에 나오는게 아무 조건 없을 때 나오는 거라서.

도움 되셨나 모르겠네요.
헐 실수가 있네요 for 안을 이렇게 고쳐야겠네요..ㅎㅎ;;

for ($i=0; $i<count($sxt); $i++)
{
if ($i==0)
  $sql_search .= " and ( ";
else
  $sql_search .= " or ";

$sql_search .= " $sxt[$i] like '%$stx%' ";

if ($i == count($sxt)-1)
  $sql_search .= " ) ";
}
<div class="board_search">
        <form name="fsearch" method="get">
        <input name="stx1" class="stx" maxlength="15" itemname="아이디" required value='<?=stripslashes($stx)?>'>
        <input name="stx2" class="stx" maxlength="15" itemname="회원이름" required value='<?=stripslashes($stx)?>'>
        <input name="stx3" class="stx" maxlength="15" itemname="예약일자" required value='<?=stripslashes($stx)?>'>
        <input type="image" src="<?=$board_skin_path?>/img/btn_search.gif" border='0' align="absmiddle">
        </form>
    </div>

이런 식으로 이름을 각자 별도로 줍니다.

검색 쿼리 부분은

$sql_search .= " where 1 ";

// $stx1 -> mb_id, $stx2 -> wr_datetime, $stx3-> wr_name 이라고 가정하고 적었습니다. 참고만 하세요.
if ($stx1)
  $sql_search .= " and mb_id like '%$stx1%' ";

if ($stx2)
  $sql_search .= " and mb_id like '%$stx2%' ";

if ($stx3)
  $sql_search .= " and mb_id like '%$stx3%' ";

간단히 이렇게 하시면 되겠네요.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT