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 に答える