我正在查询数据库并将数据转储到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。它可能会让你进入无限循环。