0

假设我们有一个查询,它给出了数据库记录的结果。我想把这些记录放在一张桌子上,但不像一行接一行。我想制作一个表格,每五个单元格就会改变一行。我该如何使用whileor来做到这一点for

这只是我现在所做的一个例子,但我不能让它在每五个单元格上改变一行......

<table>
<tr>
<?php $count = 0; while ($count <= 5){ ?>
<td><?php echo $id[$count]->id; $usrname[$count]->usrname;</td>
<?php $count++;}?>
</tr>
</table>

任何想法???

4

3 回答 3

3

使用模运算

if($count % 5 == 4) {
  // end the current row, and start a new one
  echo "</tr><tr>";

它除以$count5 并取余数。因此,每 5 步一次,它是 4($count即 4、9、14 等),您可以为每 5 条记录生成不同的东西。


如果你在你的代码示例中应用它,你会得到这个:

<table>
<tr>
<?php
$count = 0;
while ($count <= 5) {
  if($count % 5 == 4) {
    // Generate a new row
    echo "<\tr><tr>";
  }
  ?><td><?php echo $id[$count]->id." ".$usrname[$count]->usrname;?></td><?php
  $count++;
}
?>
</tr>
</table>
于 2013-02-20T10:24:56.117 回答
1

在 while 或 for 之前使用 array_chunk() 或设置为循环:

if($count % 5 == 0) {
   echo "</tr><tr>";
   $count = 0;
}
于 2013-02-20T10:27:04.910 回答
1

像这样的东西可以工作。您也可以将其与内部for循环结合使用。但是工作代码很大程度上取决于Array你在里面循环的内容。因此,您可能需要自定义以下代码以适合您的设置。

请注意,我消除了While循环,因为您没有提供实际的数组。<tr>你基本上可以放在它之前。

<table>

    // you may start your while loop here
    <tr>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
    </tr>

</table>
于 2013-02-20T10:30:55.577 回答