검색값으로 검색시 문제
본문
기간별 검색 스킨을 이용해서
아래처럼 적용시킨다음 t_start ~ t_end 값을 넣고 검색을 하면
검색값에 따라 검색후 나오는 값이 부정확합니다.
500~1,000 의 경우는 아예검색 게시글이 안나오구요.
이상증상의 규칙은 아직 잘모르겠군요.
종종 해보면 다른금액대의 금액도 검색이 되는데 한데요??
정확성을 높이기 위해 수정을 해보려면 어디를 수정해야 하나요???
///////보증금 기간별검색//////////////
//t_start=20&t_end=25&x=25&y=9
elseif ($t_start || $t_end)
{
//$sql_search = "wr_1 >= '$t_start' && wr_1 <= '$t_end'";
//5개의 필드중 1개라도 참이면 or로 묶어줍니다.
$sql_search = "(wr_13 >= '$t_start' && wr_13 <= '$t_end') or (wr_16 >= '$t_start' && wr_16 <= '$t_end') or (wr_19 >= '$t_start' && wr_19 <= '$t_end') or (wr_22 >= '$t_start' && wr_22 <= '$t_end') or (wr_25 >= '$t_start' && wr_25 <= '$t_end') ";
//$sql_search = "(wr_13 >= '$t_start' && wr_13 <= '$t_end') and (wr_16 >= '$t_start' && wr_16 <= '$t_end') and (wr_19 >= '$t_start' && wr_19 <= '$t_end') and (wr_22 >= '$t_start' && wr_22 <= '$t_end') and (wr_25 >= '$t_start' && wr_25 <= '$t_end') ";
// 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
$sql = " select MIN(wr_num) as min_wr_num from $write_table ";
$row = sql_fetch($sql);
$min_spt = $row[min_wr_num];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from $write_table where $sql_search ";
$result = sql_query($sql);
//$total_count = mysql_num_rows($result);
$total_count = sql_num_rows($result);
}
///////보증금 기간별검색//////////////
////////////기간별검색/////////////////
//보증금
elseif ($t_start || $t_end){
$sql = " select distinct wr_parent from $write_table where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}
////////////기간별검색/////////////////
//////////기간별검색////////////////////
//보증금
if ($t_start || $t_end)
$row = sql_fetch(" select * from $write_table where wr_id = '$row[wr_parent]' ");
////////////////////////////////////////
답변 1
자세하게 내용을 읽어보지 못해서 동문서답이 될 수도 있지만...
확장필드에 숫자가 들어갈때 조건문에서 싱글쿼테이션에 주의하셔야 합니다.
$param = 100;
`wr_1` > '{$param}' 문자로 인식, `wr_1` > {$param} 숫자로 인식
아무튼 숫자가 들어간 필드의 검색값이 부정확하면 이 경우가 많더라구요...