我有一个while循环,它在一个表中显示记录。工作正常,但在表的顶部有一个额外的表行是空的。
<table width="100%" border="0" cellpadding="5">
<?php do {
$count++;
?>
<tr bgcolor=<?php echo processRow($count); ?>>
<td><?php echo $row['title']; ?></td>
<td width="8%"><a href="edit_topic.php?topic_pk=<?php echo $row['topic_pk']; ?>">edit</a></td>
<td width="12%"><a href="edit_topic.php?topic_pk=<?php echo $row['topic_pk']; ?>">delete</a></td>
</tr>
<?php
if($count == 2){
$count = 0;
}
} while ($row = mysql_fetch_assoc($result));
?>
</table>发布于 2013-01-24 09:17:49
循环第一次开始时,$row = mysql_fetch_assoc($result)尚未执行,因此没有提取任何结果。在文件的开头(在循环之前)添加$row = mysql_fetch_assoc($result);,或者将do-while循环转换为while来解决问题。
发布于 2013-01-24 09:18:46
在评估传递给while的内容之前,do {} while()构造首先检查块的内容。如果你这样写,应该去掉空行:
<?php while ($row = mysql_fetch_assoc($result)): ?>
<? $count++; ?>
<tr bgcolor=<?php echo processRow($count); ?>>
<td><?php echo $row['title']; ?></td>
<td width="8%"><a href="edit_topic.php?topic_pk=<?php echo $row['topic_pk']; ?>">edit</a></td>
<td width="12%"><a href="edit_topic.php?topic_pk=<?php echo $row['topic_pk']; ?>">delete</a></td>
</tr>
<?php
if($count == 2){ $count = 0; }
endwhile;
?>https://stackoverflow.com/questions/14492321
复制相似问题