我想创建一个表,然后每6行应该有一个tr,然后行在td内。
所以例子:
<tr>
<td><?php echo $show[id]; ?></td> // 1
<td><?php echo $show[id]; ?></td> // 2
<td><?php echo $show[id]; ?></td> // 3
<td><?php echo $show[id]; ?></td> // 4
<td><?php echo $show[id]; ?></td> // 5
<td><?php echo $show[id]; ?></td> // 6
</tr> <tr> // start new tr after 6 rows
...repeat the tds
我该怎么做这样的事情? 我试过自己做了
<tr>
<?php
while ($show == mysql_fetch_array($query)){ ?>
<td><?php echo $show[id]; ?></td>
<?php } ?>
</tr>
但正如你所看到的那样,只需将所有内容插入一个tr ..
谢谢
答案 0 :(得分:20)
<tr>
<?php
$c = 0; // Our counter
$n = 6; // Each Nth iteration would be a new table row
while ($show = mysql_fetch_array($query))
{
if($c % $n == 0 && $c != 0) // If $c is divisible by $n...
{
// New table row
echo '</tr><tr>';
}
$c++;
?>
<td><?php echo $show[id]; ?></td>
<?php
} ?>
</tr>
相关链接:
答案 1 :(得分:4)
如果模6为空,则计算行数,然后回显</tr><tr>
<tr>
<?php
$i=0;
while ($show == mysql_fetch_array($query)){ ?>
<td><?php echo $show[id]; ?></td>
<?php if(++$i%6 == 0) echo '</tr><tr>'; ?>
<?php } ?>
</tr>
答案 2 :(得分:3)
你可以这样做:
<tr>
<?php
$count = 0;
while ($show = mysql_fetch_array($query)){
if($count == 6) {
$count = 0;
echo "</tr> <tr>";
}
echo "<td>".$show[id]."</td>";
$count++;
}
</tr>
答案 3 :(得分:3)
您不小心使用了比较运算符==
而不是赋值运算符=
。
要总是在每行放六个单元格,我会这样做:
$perRow = 6;
$counter = 0;
echo '<tr>';
while ($show = mysql_fetch_array($query)) {
if ($counter % $perRow === 0 && $counter !== 0) {
echo '</tr><tr>';
}
echo '<td>', $show['id'], '</td>';
$counter++;
}
while ($counter++ % $perRow !== 0) {
echo '<td></td>';
}
echo '</tr>';
这将确保每行正确填充六个单元格。
答案 4 :(得分:2)
<?php
$countRows = 0;
while ($show == mysql_fetch_array($query)){
if($countRows == 0) echo '<tr>';
?>
<td><?php echo $show[id]; ?></td>
<?php
$countRows++;
if($countRows == 6){
$countRows = 0;
echo '</tr>';
}
?>
<?php } ?>
<?php if($countRows < 6) echo '</tr>'; ?>