モジュロ (%) の使用
10 番目のセルが追加されるたびに、新しいセルが追加されると、現在の行が閉じられ、セルを出力する前に新しい行が最初に開かれます。
<?php
$result = mysqli_query($con,"SELECT * FROM table");
echo '<table width="100%" border="1px"><tr>';
$cell = 0;
while($row = mysqli_fetch_array($result))
{
if ($cell++ % 10 == 0 && $cell > 1)
{
?>
</tr><tr>
<?php
}
?>
<td width="10%"><?php echo $row['Name']; ?></td>
<?php
}
echo "</tr></table>";
mysqli_close($con);
?>
余分な条件&& $cell > 1
は少し奇妙に思えますが、それがないと、最初から空の行が得られます。++
前に置くことによってそれを排除する$cell
と、最初の行が 10 ではなく 9 セルになります。$cell > 0 &&
モジュロの前に置くと、式の最初の部分が常に false であるため、セルがインクリメントされなくなります。セルを出力した後に実行するように を移動するif
と、空の行で終了する危険性があります。ループを使用して解決できますdo..while
が、少なくとも 1 つの行があるかどうかを事前に確認する必要があります。
簡単に言えば、上記のコードを使用してください。:)
単純なカウンターを使用し、各行の後にリセットします
$cell
最初の行が 9 セルにならないようにするには、-1 に初期化する必要がありますが、モジュロがなくても読みやすいと思います。それにもかかわらず、私はこれがよりきれいだと思います:
<?php
$result = mysqli_query($con,"SELECT * FROM table");
echo '<table width="100%" border="1px"><tr>';
$cell = -1;
while($row = mysqli_fetch_array($result))
{
if (++$cell == 10)
{
$cell = 0;
?>
</tr><tr>
<?php
}
?>
<td width="10%"><?php echo $row['Name']; ?></td>
<?php
}
echo "</tr></table>";
mysqli_close($con);
?>