PHPでフォーラムを作っています。すべてのフォーラム カテゴリをテーブルに表示する必要があり、そのために while ループを使用しました。ただし、すべてのテーブル行に 3 つの td のみを配置したいと考えています。カテゴリをループするために、クエリで while ループを使用しているため、ここではモジュラスを使用できないと思います。
19197 次
3 に答える
15
モジュラスを使用できないのはなぜですか?どこかにカウンターを追加するだけで、ヒットした場合% 3 == 0
はカウンターをリセットして、自分のことをしてください.
最初と最後などのために追加の if を行う必要があるかもしれませんが、しばらくモジュロを使用しない理由はありません。
$i=0;
while(guard()){
if($i % 3 == 0){
//ploing
}
$i++
}
于 2012-01-25T19:00:19.247 に答える
13
このコードは余分な行を閉じます:
<table>
<?php
$columns = 3;
$i = 0;
while($row = mysql_fetch_array($result)){
$i++;
//if this is first value in row, create new row
if ($i % $columns == 1) {
echo "<tr>";
}
echo "<td>".$row[0]."</td>";
//if this is last value in row, end row
if ($i % $columns == 0) {
echo "</tr>";
}
}
//if the counter is not divisible by the number of columns, we have an open row
$spacercells = $columns - ($i % $columns);
if ($spacercells < $columns) {
for ($j=1; $j<=$spacercells; $j++) {
echo "<td></td>";
}
echo "</tr>";
}
?>
</table>
于 2012-01-25T19:18:39.733 に答える
2
コードをテストしていませんが、ロジックは機能するはずです。
<Table>
<?php
$i = 0;
while($row = mysql_fetch_array($result)){
if($i == 0){
echo"<TR>";
}
echo"<td>".$row[0]."<TD>";
$i++;
if($i == 3)
{
$i = 0;
echo"</tr>"
}
}
if($i ==1){
echo "<td></td><td></td></tr>";
}
if($i ==2)
{
echo "<td></td></tr>";
}
?>
<table>
于 2012-01-25T19:07:26.540 に答える