list.skin.php 검색 폼을 만들고 있습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
list.skin.php 검색 폼을 만들고 있습니다.

QA

list.skin.php 검색 폼을 만들고 있습니다.

본문

하단의 검색 부분을 참고해서 만들고 있습니다. 

필드 "type_of_sale" 에서 각자 value 값에 맞는 데이터를 검색을 하려고 하는데 어떻게 해야할지 모르겠네요 ..

 

select 코드를 아래와 같이 추가해서 get 으로 type_of_sale 에 각 value 값을 가져옵니다.

 

<tr>

     <th>

      <label class="control-label" for="">매물종류</label>

     </th>

     <td>

      <select class="form-control" name="type_of_sale" id="type_of_sale">

    <option value="" id="placeholderOption" selected disabled hidden>선택</option>

    <option value="상가건물"<?php echo get_selected($type_of_sale, '상가건물'); ?>>상가건물</option>

    <option value="상가주택" <?php echo get_selected($type_of_sale, '상가주택'); ?>>상가주택</option>

    <option value="빌딩" <?php echo get_selected($type_of_sale, '빌딩'); ?>>빌딩</option>

    <option value="구분상가" <?php echo get_selected($type_of_sale, '구분상가'); ?>>구분상가</option>

    <option value="단독/다가구" <?php echo get_selected($type_of_sale, '단독/다가구'); ?>>단독/다가구</option>

    <option value="숙박" <?php echo get_selected($type_of_sale, '숙박'); ?>>숙박</option>

    <option value="공장/창고" <?php echo get_selected($type_of_sale, '공장/창고'); ?>>공장/창고</option>

    <option value="토지/임야" <?php echo get_selected($type_of_sale, '토지/임야'); ?>>토지/임야</option>

    <option value="아파트" <?php echo get_selected($type_of_sale, '아파트'); ?>>아파트</option>

    <option value="오피스텔" <?php echo get_selected($type_of_sale, '오피스텔'); ?>>오피스텔</option>

    <option value="빌라/연립" <?php echo get_selected($type_of_sale, '빌라/연립'); ?>>빌라/연립</option>

    <option value="분양권" <?php echo get_selected($type_of_sale, '분양권'); ?>>분양권</option>

    <option value="재개발/재건축" <?php echo get_selected($type_of_sale, '재개발/재건축'); ?>>재개발/재건축</option>

    <option value="기타" <?php echo get_selected($type_of_sale, '기타'); ?>>기타</option>

      </select>

     </td>

    </tr>

 

그리고 bbs/list.php 코드를 아래와 같이 수정해 주었습니다.

 

$sop = strtolower($sop);

if ($sop != 'and' && $sop != 'or')

    $sop = 'and';

 

// 분류 선택 또는 검색어가 있다면

$stx = trim($stx);

//검색인지 아닌지 구분하는 변수 초기화

$is_search_bbs = false;

 

if ($sca || $stx || $stx === '0') {     //검색이면

    $is_search_bbs = true;      //검색구분변수 true 지정

    $sql_search = get_sql_search($sca, $sfl, $stx, $sop, $type_of_sale); 

 

 // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)

    $sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";

    $row = sql_fetch($sql);

    $min_spt = (int)$row['min_wr_num'];

 

    if (!$spt) $spt = $min_spt;

 

    $sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";

 

 if($sql_apms_where) $sql_search .= $sql_apms_where;

 

    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)

    // 라엘님 제안 코드로 대체 http://sir.kr/g5_bug/2922

    $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";

    $row = sql_fetch($sql);

    $total_count = $row['cnt'];

    /*

    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";

    $result = sql_query($sql);

    $total_count = sql_num_rows($result);

    */

} else {

    $sql_search = "";

    $total_count = $board['bo_count_write'];

}

 

생각을 해보니까 이 경우에는 필드 type_of_sale 에서 value 값이 "상가건물" 을 찾아야 하기 때문에 값을 두 번 전달?? 해주어야 하는군요.

이렇게 검색을 할 수 있나요?

이 질문에 댓글 쓰기 :

답변 1

common.lib.php 의 get_sql_search 함수를 먼저 살펴보시는 게 좋을 것 같습니다.

get_sql_search($search_ca_name,$search_field,$search_field,$search_operator='and')
첫번째 인자는 카테고리이고,

두번째 인자는 검색할 필드,

세번째 인자는 검색어,

마지막 인자는 and 검색인지 or 검색인지를 결정합니다.

때문에 본문의 내용처럼 사용한다면 에러가 발생됩니다.

 

$type_of_field 라는 변수를 게시판 테이블의 wr_1 에 저장한다고 가정하면,

셀렉트박스의 name이 type_of_field 변수가 아닌 wr_1이 되어야 합니다.

 

수정 전에 해당 코드에 사용된 함수가 어떻게 작동하는지를 먼저 살펴본 후 

수정을 하시는 게 좋을 듯 합니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 71
QA 내용 검색

회원로그인

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