PHP If语句没有';不能正确地追加变量


PHP If statement doesn't append variable properly

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

这是我的代码

<?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"的过期值,即使原始数据不同。

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

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

如果你想让口译员帮你发现这些,试着使用这样的yoda条件:

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

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

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

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

我认为应该是:

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

不是

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

首先,time_expire是什么类型?

如果time_expire是数字,则应将条件更改为:CCD_ 3,其将正确评估。

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

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