IZSOFT님 이어서 질문입니다 채택완료
블랑숑
8년 전
조회 4,319
</p><p>$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;</p><p>
이 소스를 사용할 때 여분필드에 50,100,150 이렇게 콤마로 넣으면 되나요?
그리고 사이즈가 꼭 3개가 있는건 아닌데 1~3개 정도 있는데 1개 있을때나 2개 있을 때도 검색이 되는건가요?
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
8년 전
04~05번줄이 단일 값 넘어왔을때 단일 검색이고
07~13번줄은 범위 검색 쿼리 만드는부분인데요.
단일 검색은 입력값이 1개가 아니라면 검색이 됩니다.
범위는 다시 짜야합니다.
단일검색은 설명드리자면 검색할 필드(it_5)에 "검색값," 또는 ",검색값," 또는 ",검색값" 이 있으면 검색이 되는거예요.
it_5가 1개면 콤마가 없으니 검색이 안되겠죠? 위코드로 1개만 있는걸 검색하려면 it_5에 넣을때 1개면 "값," 이런식으로 넣으면 검색이 됩니다.(편법)
it_5가 2개면 값이 "값,값" 이니까 "검색값," ",검색값" 여기에 걸려서 검색이 됩니다.
범위 검색은 it_5를 ,로 나눠서 몇개가 있는지 확인하고 그 갯수에 맞게 쿼리를 작성해야합니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 3개
�
블랑숑
8년 전
아 그렇군요 ㅠㅠ 그럼 10개가 있으면 10개 쿼리를 다 작성하고 1개만 있는 상품의 경우는 값, , , , , , , , , 이런식으로 10개를 해야하는군요 ㅠㅠ
I
IZSOFT
8년 전
범위검색 저렇게 해도 아마 오류 안날거예요.
�
블랑숑
8년 전
너무 좋은 소스니 애매하네요 ㅠㅠ 왜냐면 사이즈가 1개인 상품이 80% 정도인데 모두 3개인것처럼 값, , 이렇게 만들어야하고 나머지 20%가 상품3개 몇개 상품 10개 몇 개 이런식인데 10개를 쓰려면 사이즈가 한개인 80%의 상품을 값, , , , , , , , 이렇게 만들어야 하네요 ㅠㅠ 포기해야하나 이부분은
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인