list.skin.php 검색 폼을 만들고 있습니다. 채택완료
하단의 검색 부분을 참고해서 만들고 있습니다.
필드 "type_of_sale" 에서 각자 value 값에 맞는 데이터를 검색을 하려고 하는데 어떻게 해야할지 모르겠네요 ..
select 코드를 아래와 같이 추가해서 get 으로 type_of_sale 에 각 value 값을 가져옵니다.
그리고 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이 되어야 합니다.
수정 전에 해당 코드에 사용된 함수가 어떻게 작동하는지를 먼저 살펴본 후
수정을 하시는 게 좋을 듯 합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인