简单的问题是错误吗?
$result = mysql_query("
SELECT * FROM orders
WHERE Username='$username'
AND completed > ordered
ORDER BY completed ASC
LIMIT 1
") or die(mysql_error());
没有错误,没有数据。
答案 0 :(得分:3)
查询的语法可能正确,但您的算法可能不是:
SELECT * FROM orders
WHERE Username = ?
AND completed > ordered
ORDER BY completed ASC
LIMIT 1
(然后确保将查询绑定到$username
以缓解SQL注入攻击。)
你有一张orders
表,大概包含......它含有什么?它不能是日期戳,因为所有订单将在完成后完成。
所以一定是INT吗?并且您希望选择那些完成订单而不是(AND completed > ordered
)的订单,这对您的公司来说是不可能的。试试completed < ordered
。
答案 1 :(得分:-1)
很抱歉打扰所有人,但这是简单的拼写错误通知“&gt;”它应该是“&lt;”因为完成的不能大于订购的那个。
$result = mysql_query("SELECT * FROM orders WHERE Username='$username' AND completed > ordered ORDER BY completed ASC LIMIT 1") or die(mysql_error());