-6

简单的问题哪里错了?

$result = mysql_query("
    SELECT * FROM orders 
    WHERE Username='$username' 
        AND completed > ordered 
    ORDER BY completed ASC 
    LIMIT 1
") or die(mysql_error());

没有错误也没有数据。

4

2 回答 2

3

您的查询的语法可能是正确的,但您的算法可能不是:

SELECT * FROM orders 
WHERE Username = ? 
AND completed > ordered 
ORDER BY completed ASC 
LIMIT 1

(然后确保绑定查询$username以减轻 SQL 注入攻击。)

你有一个orders大概包含...它包含什么的表?它不能是日期戳,因为所有订单都将在下达后完成。

所以它必须是一个INT?并且您想选择那些完成的订单比完成的订单多的人( AND completed > ordered),这在您的公司可能是不可能的。试试completed < ordered

于 2012-08-01T14:16:51.633 回答
-1

好的,很抱歉打扰大家,但这是一个简单的错字通知“>”,它应该是“<”,因为完成的不能比订购的大,就是这样。

$result = mysql_query("SELECT * FROM orders WHERE Username='$username' AND completed > ordered ORDER BY completed ASC LIMIT 1") or die(mysql_error());
于 2012-08-01T14:13:57.877 回答