검색질문입니다..

검색질문입니다..

QA

검색질문입니다..

본문

https://sir.kr/g5_tip/3003

 

이 글 참고해서 다중검색이 되게 하고 있는데..

 

다중 검색후 페이징도 안되고,, 

 

특히 궁금한 것은

 

한 게시글안 wr_3에 2018-12-13을 wr_4에 2018-12-15를

 

입력하고

 

2018-12-14를 입력해도 해당 게시글이 검색되게 하려면 .. 어디를 고쳐야 하나요?

common.lib.php

 

646번째줄 여기 맞나요? ㅠㅠㅠ


  switch ($field[$k]) {
                case "mb_id" :
                case "wr_name" :
                    $str .= " $field[$k] = '$s[$i]' ";
                    break;
                case "wr_hit" :
                case "wr_good" :
                case "wr_nogood" :
                    $str .= " $field[$k] >= '$s[$i]' ";
                    break;
                // 번호는 해당 검색어에 -1 을 곱함
                case "wr_num" :
                    $str .= "$field[$k] = ".((-1)*$s[$i]);
                    break;
                case "wr_ip" :
                case "wr_password" :
                    $str .= "1=0"; // 항상 거짓
                    break;
                // LIKE 보다 INSTR 속도가 빠름
                default :
                    if (preg_match("/[a-zA-Z]/", $search_str))
                        $str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
                    else
                        $str .= "INSTR($field[$k], '$search_str')";
                    break;
            }

이 질문에 댓글 쓰기 :

답변 1

검색 타입을 추가하셔서 switch case 구분자 추가후 날짜 검색 쿼리를 추가해 주셔야 합니다.

인덱스에서
<input type="text" id="datepicker" name="date" value='<?echo $wr_1?>' autocomplete="off" >
ㅇㅣ것넣고

switch 구문에
이렇게 했는데 아무것도 작동되지 않아용..


  for ($k=0; $k<count($field); $k++) { // 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
            $str .= $op2;
            switch ($field[$k]) {
                case "mb_id" :
                case "wr_name" :
                    $str .= " $field[$k] = '$s[$i]' ";
                    break;
                case "wr_hit" :
                case "wr_good" :
                case "wr_nogood" :
                    $str .= " $field[$k] >= '$s[$i]' ";
                    break;
                // 번호는 해당 검색어에 -1 을 곱함
                case "wr_num" :
                    $str .= "$field[$k] = ".((-1)*$s[$i]);
                    break;
								case "wr_5" :
								case "wr_6" :
                    $str .= "$field[$k] > ".((-1)*$s[$i]);
                    break;
				case "date":
					 $str .= "wr_1 <= '$date' and wr_4 >= '$date' ";
                    break;
                // LIKE 보다 INSTR 속도가 빠름
                default :
                    if (preg_match("/[a-zA-Z]/", $search_str))
                        $str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
                    else
                        $str .= "INSTR($field[$k], '$search_str')";
                    break;
            }

답변을 작성하시기 전에 로그인 해주세요.
전체 728
QA 내용 검색
filter #sql ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT