PHP If语句没有正确附加变量

时间:2013-06-24 06:11:00

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

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

这是我的代码

<?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表格中的每一行都有一个“never”的到期值,即使原始数据不同。

4 个答案:

答案 0 :(得分:3)

我认为它应该是:

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

不是

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

答案 1 :(得分:3)

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

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

如果您希望口译员为您找到这些,请尝试使用yoda conditions,如下所示:

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

此表单将创建错误,但正确的表单都可以正常工作:

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

首先是什么类型time_expire

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

其次,您的条件检查实际上是将值$rows['time_expire']分配给单=,它应该是=的{​​{1}}加倍。