2012-06-15 3 views
1

У меня есть одна проблема с этим mysql_query:mysql_query ошибка

$selectNewsComments = mysql_query(" 
SELECT user_id, comment, time_add 
FROM news_comments 
ORDER BY id DESC 
LIMIT " .($pageNum - 1) * $numberOfNewsInPage . ", ".$numberOfNewsInPage." 
WHERE news_id = '".$nid."' 
") or die(mysql_error()); 

То есть сообщение об ошибке:

У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'WHERE news_id =' 18 '' по строке 1

Может ли кто-нибудь сказать мне, что это из-за шума?

+0

'WHERE' заказана перед тем 'ORDER BY' и' LIMIT' в операторе ['SELECT'] (http://dev.mysql.com/doc/refman/5.0/en/select.html). –

+0

Обратите внимание на то, как я отформатировал ваш запрос и сколько * легко читать * при «правильном» форматировании (по мне). Не раскачивайте его на той же длинной, длинной, loooooong линии. –

ответ

6

Ваш ORDER BY id DESC LIMIT должен идти после WHERE

Предупреждение: Пример кода на вопрос использует MySQL расширение PHP, которая была устаревшее в PHP 5.5.0 и удаляется полностью в PHP 7.0.0.

+0

Хорошо, проблема решена :). –

1

Статья WHERE должна предшествовать ORDER BY.

mysql_query("SELECT user_id, comment, time_add FROM news_comments WHERE news_id = '".$nid."'ORDER BY id DESC LIMIT " .($pageNum - 1) * $numberOfNewsInPage . ", ".$numberOfNewsInPage) 
0

использовать это вместо

$selectNewsComments = mysql_query(" 
SELECT user_id, comment, time_add 
FROM news_comments 
LIMIT " .($pageNum - 1) * $numberOfNewsInPage . ", ".$numberOfNewsInPage." 
WHERE news_id = '".$nid."' 
ORDER BY id DESC 
") or die(mysql_error()); 

, что я изменил это:
я помещен ORDER BY id DESC в конце запроса, где это должно быть так, что он работает

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