【发布时间】:2018-11-11 10:58:21
【问题描述】:
我有以下代码:
$sql = "SELECT * FROM reward_table WHERE _cost <= '$_points' ORDER BY ID DESC";
$result = $conn->query($sql);
while (($row = mysqli_fetch_assoc($result))) {
$_title[] = $row_s['_title'];
$_cost[] = $row_s['_cost'];
$_id[] = $row_s['ID'];
}
例如,当_cost 设置为 8792,$_points 设置为 8793 时,就会显示特定的奖励。当_cost 更新为 8794 时,它就会消失,这很好 - 有效。不过……
_cost设置为10000时,也显示?但是,当我将 _cost 更改为 9000 时,它应该会消失。我很困惑 - 我编码错了什么..?看起来代码只有在_cost 的起始数字高于或与$_points 的起始数字相同时才有效。
我们非常感谢您的帮助,这将阻止我完全发疯!
【问题讨论】:
-
表定义是什么?
_cost可能是文本字段而不是数字字段吗? -
试试
CAST(_cost AS UNSIGNED) <= $_points。听起来你正在做一个字符串比较,在这种情况下'10000' < '2' -
你说得对。一旦我将行更改为 INT,它就开始工作。总是一个简单的修复!谢谢大家。
标签: php mysqli comparison-operators