2013-04-05 2 views
-3

Я пытаюсь проверить, существует ли условие до выполнения обновления mysql. Этот код ниже РАБОТЫ:Как проверить условие перед выполнением запроса MYSQL?

if (!mysql_query(
"UPDATE customers SET available_credit = available_credit where userid = '$userid';" 
)) 

{ 
die('Sorry, a database error occurred'); 
} 

... но я пытаюсь добавить еще одно условие, чтобы это так:

if (!mysql_query && ($tradein_status == 'Accepted CREDIT')(
"UPDATE customers SET available_credit = available_credit where userid = '$userid';" 
)) 

{ 
die('Sorry, a database error occurred'); 
} 

..which не работает - он создает эту ошибку: " ошибка синтаксического анализа: синтаксическая ошибка, неожиданный «(» в /home/bohemeth/public_html/tradeins/save_tradeins.php на линии 235"

Второе, что мне интересно, почему эта часть:

if (!mysql_query(
"UPDATE customers SET available_credit = available_credit where userid = '$userid';" 
)) 

... не написано с двумя и круглые скобки фигурные скобки после условия, которые, кажется, вы могли бы сделать в другом месте для условного теста, например, так:

if (!mysql_query){ 
"UPDATE customers SET available_credit = available_credit where userid = '$userid';" 
} 

Спасибо за любую помощь !!

+0

У вас никогда не может быть этого: 'if (! Mysql_query &&'. 'Mysql_query()' является функцией. – nickb

+0

Спасибо, Ник. Какой был бы лучший способ написать что-нибудь? Завершить ли я заявление, которое работает с внешним if? Например: if ($ tradein_status == 'Accepted CREDIT') {if (! Mysql_query ( "UPDATE клиенты SET available_credit = available_credit, где userid = '$ userid';" ))} –

+0

http://php.net/if ; http://php.net/expressions; http://php.net/operators --- все это в ссылке на PHP в начале руководства. Я предлагаю хотя бы разобрать ссылку и прочитать ее. – hakre

ответ

1

mysql_query - это функция. Он используется так: mysql_query('SQL QUERY');

Это было написано, как в вашем вопросе, как попытка сделать его более удобным для чтения:

if(!mysql_query(
'SQL QUERY' 
)) 

Это также может быть написано так:

if(!mysql_query('SQL QUERY')) 

Итак, чтобы добавить другое предложение, добавьте его до или после вызова mysql_query.

if($tradein_status == 'Accepted CREDIT' && mysql_query('SQL QUERY')) 

В if заявлении {} можно опустить. В этом случае следующая строка - это пробег, если это правда.

Таким образом, для завершения:

if($tradein_status == 'Accepted CREDIT' && mysql_query('SQL QUERY')){ 
    die('Sorry, a database error occurred'); 
} 
+0

Отличное спасибо! Это работает! Очень ценится Ракета –

+0

@TimDonahue: Добро пожаловать :-) –

0
if ($tradein_status == 'Accepted CREDIT') 
    mysql_query("UPDATE customers SET available_credit = available_credit where userid = '$userid';") or die("Sorry, a database error occurred"); 

Вы не можете написать другой код между именем функции и аргументов.

+0

Я вижу. СПАСИБО за вашу помощь bwoebi! Ваше решение, как и другие выше, отлично работает! –

0

mysql_query - вызов функции, который передает ваш запрос "UPDATE customers SET available_credit = available_credit where userid = '$userid';" в качестве параметра строки.

Это означает, что mysql_query должен иметь вид:

mysql_query("UPDATE customers SET available_credit = available_credit where userid = '$userid';") 

mysql_query возвращает ресурс .. который является результатом вашего запроса.

Для того, чтобы добавить второй условный оператор, сделайте следующее:

if (!mysql_query("UPDATE customers SET available_credit = available_credit where userid = '$userid';") && ($tradein_status == 'Accepted CREDIT')) 
+0

Спасибо, Джастин! Еще одно отличное решение для моего нового вопроса. Оценил. –

1
if ($tradein_status == 'Accepted CREDIT' && !mysql_query (
"UPDATE customers SET available_credit = available_credit where userid = '$userid';" 
)) 

{ 
die('Sorry, a database error occurred'); 
} 

mysql_query является функцией, а не переменная. Аргументом является строка во втором парсе.

+0

Oh duh. Я вижу ... это ответ на вторую часть моего вопроса ... Я понял. Я попробую. Спасибо, парни. UPDATE - Да, это работает. БЛАГОДАРЯ! –

+0

Жаль, что я тоже мог бы выбрать ваш ответ, так как он полностью работает, но я должен был выбрать первого парня, которого я предполагаю. –

+0

Без проблем человек ... Мне просто нужно научиться вводить быстрее! Рад, что ты заработал! – eidsonator