1

我正在查询我的数据库并将数据转储到 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 表中的每一行都有一个“从不”的过期值,即使原始数据不同。

4

4 回答 4

3

我认为应该是:

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

不是

if ($rows['time_expire'] = '-1')
于 2013-06-24T06:13:55.400 回答
3

这似乎是 if 语句中的常见错字

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

如果您想让口译员为您发现这些,请尝试使用如下yoda 条件

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

这种形式会产生错误,但是正确的形式都可以正常工作:

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

或者

$rows['time_expire'] == '-1'
于 2013-06-24T06:15:10.853 回答
0

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

于 2013-06-24T06:16:21.110 回答
0

首先是什么类型time_expire

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

其次,您的条件检查实际上是$rows['time_expire']用 single分配值=,它应该是=double ==

于 2013-06-24T06:32:47.117 回答