IZSOFT님 이어서 질문입니다
본문
$wfrom = isset($_GET['wfrom']) ? preg_replace('/[^0-9]/', '', trim($_GET['wfrom'])) : '';
$wto = isset($_GET['wto']) ? preg_replace('/[^0-9]/', '', trim($_GET['wto'])) : '';
if ($it_5)
$where[] = " it_5 regexp '($it_5,|,$it_5,|,$it_5)'";
if ($wfrom && $wto) {
$where[] = " ( (SUBSTRING_INDEX(a.it_5,',',1) BETWEEN '$wfrom' AND '$wto') OR (SUBSTRING_INDEX(SUBSTRING_INDEX(a.it_5,',',2),',',-1) BETWEEN '$wfrom' AND '$wto') OR (SUBSTRING_INDEX(a.it_5,',',-1) BETWEEN '$wfrom' AND '$wto') ) ";
} else if($wfrom) {
$where[] = " ( (SUBSTRING_INDEX(a.it_5,',',1) >= '$wfrom') OR (SUBSTRING_INDEX(SUBSTRING_INDEX(a.it_5,',',2),',',-1) >= '$wfrom') OR (SUBSTRING_INDEX(a.it_5,',',-1) >= '$wfrom' ) ) ";
} else if($wto) {
$where[] = " ( (SUBSTRING_INDEX(a.it_5,',',1) <= '$wto') OR (SUBSTRING_INDEX(SUBSTRING_INDEX(a.it_5,',',2),',',-1) <= '$wto') OR (SUBSTRING_INDEX(a.it_5,',',-1) <= '$wto' ) ) ";
}
if($wfrom && $wto) $query_string .= '&wfrom='.$wfrom.'&wto='.$wto;
이 소스를 사용할 때 여분필드에 50,100,150 이렇게 콤마로 넣으면 되나요?
그리고 사이즈가 꼭 3개가 있는건 아닌데 1~3개 정도 있는데 1개 있을때나 2개 있을 때도 검색이 되는건가요?
!-->답변 1
04~05번줄이 단일 값 넘어왔을때 단일 검색이고
07~13번줄은 범위 검색 쿼리 만드는부분인데요.
단일 검색은 입력값이 1개가 아니라면 검색이 됩니다.
범위는 다시 짜야합니다.
단일검색은 설명드리자면 검색할 필드(it_5)에 "검색값," 또는 ",검색값," 또는 ",검색값" 이 있으면 검색이 되는거예요.
it_5가 1개면 콤마가 없으니 검색이 안되겠죠? 위코드로 1개만 있는걸 검색하려면 it_5에 넣을때 1개면 "값," 이런식으로 넣으면 검색이 됩니다.(편법)
it_5가 2개면 값이 "값,값" 이니까 "검색값," ",검색값" 여기에 걸려서 검색이 됩니다.
범위 검색은 it_5를 ,로 나눠서 몇개가 있는지 확인하고 그 갯수에 맞게 쿼리를 작성해야합니다.
답변을 작성하시기 전에 로그인 해주세요.