【问题标题】:PHP If statement doesn't append variable properly [closed]PHP If语句没有正确附加变量[关闭]
【发布时间】:2013-06-20 13:51:07
【问题描述】:

我正在查询我的数据库并将数据转储到 HTML 表中。我的数据库键之一称为“time_expire”,值为-1 表示从不。因此,为了在 HTML 表中显示“从不”的效果而不是原始数据,我试图在变量被回显之前更改它。

这是我的代码

<?php
        $sql = "SELECT * FROM penalties ORDER BY id DESC";
        $result = mysql_query($sql);
        while ($rows = mysql_fetch_array($result)) {

            if ($rows['time_expire'] = '-1') {
                $rows['time_expire'] = '<span class="label label-important">Permanent</span>';
            }

            echo "<tr>";
            echo '<td><a href="ban.php?banid=' . $rows['id'] . '">' . $rows['id'] . '</a></td>';
            echo "<td>" . $rows['client_id'] . "</td>";
            echo "<td>" . $rows['type'] . "</td>";
            echo "<td>" . date('m/d/Y', $rows['time_add']) . "</td>";
            echo "<td>" . $rows['duration'] . "</td>";
            echo "<td>" . $rows['time_expire'] . "</td>";
            echo "<td>" . $rows['reason'] . "</td>";
            echo "</tr>";
        }
        ?>

此代码不会出错,但是我的 HTML 表中的每一行都有一个“从不”的过期值,即使原始数据不同。

【问题讨论】:

  • 你可能想写==而不是=
  • 这使我的输出好像 if 语句不存在,它忽略它。没有错误。
  • 是的,当然。就是这样.. if ($rows['time_expire'] == '-1') {
  • var_dump($rows['time_expire']);放在if语句之前,看看你的变量变成了什么值
  • 没关系,这是正确的。我需要一个 == 在 if 行上,而不是它下面的行。非常感谢。

标签: php mysql variables if-statement while-loop


【解决方案1】:

这似乎是 if 语句中的常见拼写错误

if ($rows['time_expire'] = '-1') [
                         ^
                         |

如果您想让解释器为您发现这些,请尝试使用 yoda conditions,如下所示:

if ('-1' = $rows['time_expire'])

此表单会产生错误,但正确的表单都可以正常工作:

'-1' == $rows['time_expire'] 

$rows['time_expire'] == '-1'

【讨论】:

  • 在 'if' 行上给它一个 == 有效,我之前尝试在两条线上都这样做。谢谢,不过我不能投票给你。
【解决方案2】:

我认为应该是:

if ($rows['time_expire'] == '-1')

不是

if ($rows['time_expire'] = '-1')

【讨论】:

    【解决方案3】:

    首先time_expire是什么类型?

    如果time_expire 是数字,那么您应该将条件更改为: if ($rows['time_expire'] == -1) 将正确评估。

    其次,您的条件检查实际上是用单个 = 将值分配给 $rows['time_expire'],它应该是双 =,如 ==

    【讨论】:

      【解决方案4】:

      尝试将 If 条件更改为 if ($rows['time_expire'] == '-1')。现在你的条件说变量$rows['time_expire']等于'-1',它总是返回true。它可能会让你进入无限循环。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-18
        • 2018-08-03
        • 2015-08-17
        • 1970-01-01
        • 2012-07-01
        • 2013-10-09
        相关资源
        最近更新 更多