IZSOFT님 이어서 질문입니다

IZSOFT님 이어서 질문입니다

QA

IZSOFT님 이어서 질문입니다

답변 1

본문


$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를 ,로 나눠서 몇개가 있는지 확인하고 그 갯수에 맞게 쿼리를 작성해야합니다.

 

 

 

너무 좋은 소스니 애매하네요 ㅠㅠ 왜냐면 사이즈가 1개인 상품이 80% 정도인데 모두 3개인것처럼 값, ,  이렇게 만들어야하고 나머지 20%가 상품3개 몇개 상품 10개 몇 개 이런식인데 10개를 쓰려면 사이즈가 한개인 80%의 상품을 값, , , , , , , ,  이렇게 만들어야 하네요 ㅠㅠ 포기해야하나 이부분은

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 17,127
© SIRSOFT
현재 페이지 제일 처음으로