2013-09-27 22 views
-2

我想只显示折扣最新的图书。 Dealstart和Dealend代表了这个窗口。但我搞砸了。php ORDER BY日期似乎不起作用

$sqlCommand = "SELECT id,bookcover FROM booklist WHERE category1='$bookid' OR category2='$bookid' OR category3='$bookid' AND dealstart >= CURDATE() AND dealend is >= CURDATE()"; 
+1

将您的'OR'条件分组。 [阅读关于运算符优先级](http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html)。 –

+1

查询中没有ORDER BY – Snowburnt

+0

解决了这个问题。我把()放在我的OR语句中。谢谢。 – user2816376

回答

0

它看起来像有一个在你的SQL语句中的语法错误,删除“是”:

lCommand = "SELECT id,bookcover FROM booklist WHERE category1='$bookid' OR category2='$bookid' OR category3='$bookid' AND dealstart >= CURDATE() AND dealend >= CURDATE()"; 

如果查询仍然不工作,回声“lCommand”,看看它的生产,然后尝试对数据库运行该查询。

0

是否这样?

$sqlCommand = "SELECT 
        id, 
        bookcover 
       FROM 
        booklist 
       WHERE 
        category1='$bookid' OR 
        category2='$bookid' OR 
        category3='$bookid' AND 
        dealstart >= CURDATE() AND 
        dealend >= CURDATE() 
       ORDER BY 
        dealend DESC";