2012-06-24 3 views
0

Ниже приведен запрос mySQL, содержащий исходный запрос, за которым следуют некоторые дополнительные критерии.PHP-переменная в mySQL, содержащая mySQL equasion

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'red материалом, замененным простым условием «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

Хорошо, что хорошо сделано. –

Смежные вопросы