2014-04-11 5 views
0

에 내가 mysqli 준비된 문장에 원하는 결과를 얻기에 문제를 데 사용. 나는 like와 where를 모두 사용하고 있습니다. 날짜를 검색하는 동안 고려해야하는 경우같은과 = 같은 mysqli 준비된 문장

// 내 검색 변수

$a = "%{$_REQUEST['a']}%"; 
$b = "%{$_REQUEST['b']}%"; 
$search_from_date = $_REQUEST['from_date']; 
$search_to_date = $_REQUEST['to_date']; 

// 내 쿼리는

$q = $mysqli->prepare("SELECT t1.* from table1 t1 where (t1.a like ? and t1.b like ?) and (date(last_updated) between ? and ?) limit ".$start.','.$per_page); 

$q->bind_param('ssss',$a,$b,$search_from_date,$search_to_date); 

나는 결과를 얻을 단지 수 없습니다입니다. 다른 필드에서 성명 검색에서 날짜를 삭제하면 훌륭한 작품이 효과적입니다.

아무런 입력하는 검색 조건이없는 경우 나는 문에서 검색 조건 자체를 제거 할 수있는 방법을 말해. 나는 to_date가 지정되지 않은 경우 쿼리가 해당 열을 1로 대체해야 함을 의미합니다.

이렇게하면 검색 조건이 지정되지 않은 경우에도 기본 행 30 개가 생깁니다.

+0

당신은 시작과 페이지 변수 당뿐만 아니라 –

+0

감사 자리를 사용해야합니다. 해당 검색 조건에 대한 입력이없는 경우 검색 조건 자체를 명령문에서 제거 할 수있는 방법을 알려주십시오. 나는 to_date가 지정되지 않은 경우 쿼리가 해당 열을 1로 대체해야 함을 의미합니다. –

+0

쿼리에 사용할 문자열을 가질 수 있으며 PHP (또는 동급)에서 IF 문을 사용하여 선택적으로 WHERE 절에 AND 조건을 추가 할 수 있습니다. 그런 다음 문자열이 완성되면이를 사용할 수 있습니다. – Chrisky

답변

0

날짜 형식을 비교할 수없는있는 좋은 기회가있다. 많은 데이터베이스가 기본 ISO 8601 날짜 (yyyy-mm-dd)를 사용합니다. 요청하신 날짜가 올바르게 포맷되었는지 확인할 수 있습니까? 그게 업데이트됩니다에 대한

+0

날짜 형식은 이미 ymd 형식을 사용하는 데 문제가 없습니다 –

+0

날짜 선택 (?), 날짜 (?)와 같은 테스트 코드를 실행하여 입력 날짜에 바인드하여 해석 방법을 보여줄 수 있습니까? – Chrisky

+0

그들은 y-m-d 형식 자체입니다. –