테스트 사이트 - 개발 중인 베타 버전입니다

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 .= '&amp;wfrom='.$wfrom.'&amp;wto='.$wto;</p><p>

 

이 소스를 사용할 때 여분필드에 50,100,150 이렇게 콤마로 넣으면 되나요?

 

그리고 사이즈가 꼭 3개가 있는건 아닌데 1~3개 정도 있는데 1개 있을때나 2개 있을 때도 검색이 되는건가요? 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
IZSOFT
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%의 상품을 값, , , , , , , , 이렇게 만들어야 하네요 ㅠㅠ 포기해야하나 이부분은

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인