PHP:结束并在6行后开始新的

时间:2010-09-06 12:18:07

标签: php

我想创建一个表,然后每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 ..

谢谢

5 个答案:

答案 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>'; ?>