2012-06-24 71 views
0

以下是一個mySQL查詢,其中包含初始查詢,後跟一些附加條件。包含mySQL equasion的mySQL中的PHP變量

mysql_query("SELECT * FROM electors WHERE telephone > 0 AND last_known_voting_intention = 'P' OR last_known_voting_intention = 'A'"); 

我想從另一個頁面傳遞附加條件幷包含在PHP變量中。

$criteria = "AND last_known_voting_intention = 'P' OR last_known_voting_intention = 'A'"; 

然後我如何將它包含在mySQL查詢中。

mysql_query("SELECT * FROM electors WHERE telephone > 0 $criteria"); 

mysql_query("SELECT * FROM electors WHERE telephone > 0 ".$criteria); 

這2個似乎不起作用。

+0

我認爲原來的查詢(不分離$標準)工作了嗎? – raina77ow

+1

做第一個查詢工作?你知道這一點,優先級高於OR,對嗎? –

+0

當然。 )不知何故,我仍然看着這個查詢,所有這些長'OR'的東西被簡單的'IN'條件取代。我建議提交您的評論作爲答案。 ) – raina77ow

回答

2

您的原始查詢看起來應該起作用,但如果它是PHP的奧祕之一,我不會感到驚訝。

你可以做的是這樣的:

$sql = "SELECT * FROM electors WHERE telephone > 0"; 
$criteria = " AND last_known_voting_intention = 'P' OR last_known_voting_intention = 'A'"; 

if (!empty($criteria)) 
{ 
    $sql .= $criteria; // Append it to SQL query 
} 

mysql_query($sql); 
+1

我會用'IN'重寫$標準。 – raina77ow

+0

好東西做得很好。 –