Стенограмма работает только для однострочных операторов. Так как ваш , если оператор содержит две строки, стенография не работает. Обычно в то время как петли в следующем формате:
while (/* condition */)
{
// code to be executed
}
Ваше тройная выражение также неправильно; она должна быть записана следующим образом:
(/* condition */) ? /* if true do this */ : /* if false do this */
Во второй части тройного оператора (?:
), можно использовать условный оператор &&
, который сравнивает два логических выражений. Насколько я понимаю, ваше намерение использовать &&
состоит в том, чтобы выполнить две строки, что неверно. Обратитесь к документации: PHP Docs (Comparison operators)
Вам нужно написать то время как цикл с фигурными скобками, потому что ваш если заявление содержит несколько строк кода, следующим образом:
while($row = mysql_fetch_assoc($result))
{
if (strtolower($message) == $row['question'])
{
msg($row['answer']);
update($row['question']);
}
}
* Что * не работает? Если msg() возвращает false, update() не будет запускаться, конечно. – Bert
Каково определение msg() и update()? Это может вызвать проблемы. Поскольку вы говорите 'if (strtolower ($ message) == $ row ['question']) {msg ($ row ['answer']) && update ($ row ['question'])} else {return '' } ' – d3r1ck
Синтаксис верный, никаких ошибок. Функции msg(); и update(); просто mysql_update. Этот код без update(); функция работает правильно. Когда они являются двумя функциями, вторая функция не работает. – mandaryneks