2014-04-26 3 views
0

PHP 값이 비어있는 경우 특정 조건을 무시하도록 mysql 쿼리를받는 방법을 아는 사람이 있습니까? 많은 엄격한 조건으로 검색을 필터링하는 사전 검색 엔진을 만들려고하지만 SQL이 PHP 값이 비어있는 경우 원인을 무시하도록합니다. 예를 들어 : 쿼리에서 발생, 그래서 검색의 다른 조합에 대해 여러 쿼리를 만드는 포함 아무것도 행할 수없는 경우에는PHP는 값이 비어 있으면 SQL을 무시합니다.

$condition_1 = ' '; 
$condition_2 = 'Random'; 
mysql_query("SELECT something FROM table WHERE row_1='$condition_1' &&  row_2='$condition_2'") 

(15)이있을 것입니다.

$ condition_1은 비어 있으며 row_1에 값이없는 결과 만 표시되지만, PHP 값 $ condition_1이 비어있을 때 쿼리가 row_1 조건을 무시하도록하고 싶습니다. 어떻게하면 좋을까요?

+0

비어있는 경우이 또한 작동합니다 수 있습니다. && – dkakoti

+0

대신 AND를 사용하십시오. @dkakoti -'&&'는 AND와 MySQL에서 허용 된 연산자입니다 (https://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html).). 첫 번째 조건의 –

답변

3

당신은, 동적 WHERE 조건을 구성하는 두 조건이 모두 내가 당신의 쿼리가 잘못 생각

$sql = "SELECT something FROM table where 1 "; 

if(trim($condition_1) != '') 
    $sql .= " AND row_1='$condition_1'"; 

if(trim($condition_2) != '') 
    $sql .= " AND row_2='$condition_2'"; 

mysql_query($sql); 
+0

이 충족되면 sql은 "SELECT something FROM table where 1 AND row_1 = '$ condition_1'"이 제대로 작동합니다. 표현식 'WHERE 1'은 항상 참으로 평가되는 더미입니다. –

관련 문제