0

我有一个 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>
4

2 回答 2

0

循环第一次开始时$row = mysql_fetch_assoc($result)尚未执行,因此未获取任何结果。$row = mysql_fetch_assoc($result);在文件开头(循环前)添加或将do-while循环转换为while即可解决问题。

于 2013-01-24T01:17:49.427 回答
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; 
?>
于 2013-01-24T01:18:45.983 回答