MYSQL, сочетание WHERE / LIMIT / ORDERBY - PullRequest
5 голосов
/ 20 января 2011

У меня есть это

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW())';
   $result = $conn->query($sql) or die(mysqli_error());
   $news = $result->fetch_assoc();

, которое работает нормально, однако, когда я изменяю его на это

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW() LIMIT 2)';

Я получаю это сообщение об ошибке

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /var/www/.../...php

Наконец яхотел бы объединить это с порядком, что-то вроде этого

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW() LIMIT 2 ORDER BY DESC)';

что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 20 января 2011

Вы должны извлечь предложение limit из макроса DATE ().

SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) LIMIT 2

Также, если вы хотите заказать, вы должны установить поле, например

SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) LIMIT 2 ORDER BY myField DESC
2 голосов
/ 20 января 2011
$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) ORDER BY edate DESC LIMIT 2';

Обратите внимание, что фактическая ошибка заключается в том, как вы вызываете mysqli_error в коде обработки ошибок.Исправьте это тоже.

...