【问题标题】:PHP <= malfunctions when first number is less当第一个数字较小时,PHP <= 发生故障
【发布时间】: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) &lt;= $_points。听起来你正在做一个字符串比较,在这种情况下'10000' &lt; '2'
  • 你说得对。一旦我将行更改为 INT,它就开始工作。总是一个简单的修复!谢谢大家。

标签: php mysqli comparison-operators


【解决方案1】:

简单的修复 - 我的表有 _cost 作为文本,而不是整数。 一切正常,无需更改代码。修复是桌面的。

【讨论】:

    猜你喜欢
    • 2014-02-21
    • 2014-10-21
    • 2014-05-13
    • 2015-11-06
    • 1970-01-01
    • 2019-12-27
    • 2020-09-19
    • 1970-01-01
    • 2022-08-21
    相关资源
    最近更新 更多