我有一个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>
答案 0 :(得分:0)
第一次循环启动$row = mysql_fetch_assoc($result)
尚未执行,因此未获取任何结果。
在文件的开头添加$row = mysql_fetch_assoc($result);
(在循环之前)或将do-while循环转换为while以解决问题。
答案 1 :(得分:0)
do {} while()
的内容之前,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;
?>