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

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이 되어야 합니다.

 

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

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

 

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

회원로그인

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