我目前可以在一列中打印8条记录,我正在尝试在两列中打印16条记录,或者在三列中打印24条记录。 经过几个月的尝试,我不得不承认这让我感到困惑。 如有任何帮助或指导,将不胜感激。 下面的代码完美地给了我第一列8,但之后我就卡住了
$result1 = $db->prepare("SELECT * FROM table WHERE id='100' ORDER BY id ASC LIMIT 8 ");
$result1->execute();
print("");
$count = $result1->rowCount();
print("");
for($i=0; $row = $result1->fetch(); $i++) {
?>
<body topmargin="0">
<table border="0">
<tr>
<td>
<font size="5">ID:<?php echo $row['id']; ?></font><br>
<font size="5"><?php echo $row['field1']; ?></font><br>
<font size="5">Field1<?php echo $row['field2']; ?></font><br>
<font size="4">Field2<?php echo $row['field3']; ?></font><br>
<font size="3">Field3<?php echo $row['field4']; ?></font><br>
</td>
</tr>
<?php
}
?>
我可以通过做一个循环来输出一个具有所需列计数的表来实现这一点。
在此过程中,您将需要迭代许多行,然后在该循环中,为每个列写出表条目。
如果您的数据没有完全填满列x行,那么您当然会得到一些空白项。
$rows = ceil($count / $columns)
for ($r = 0; $r < $rows; $r++) {
echo "<tr>";
for ($c = 0; $c < $columns; $c++) {
$value = $result1->getNext() ?? '';
echo "<td>{$value}</td>";
}
echo "</tr>";
}
这里的getNext()取决于您如何最好地实现。 您可以将所有值加载到一个数组中并递增索引计数器,或者您的$DB类可以为获取下一个值提供一个更有帮助的访问器。