2012-06-24 41 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

好东西做得很好。 –