我是编程新手 - 我正在从数据库中检索信息,我必须每行显示3个项目。 这是代码:
<?php
if($top) {
foreach($top as $val)
{
?>
<tr>
<?php for($c=0;$c<=3;$c++) { ?>
<td>
<img src="<?= $val['image']; ?>" style="width: 75px;height: 75px;"/>
</td>
<?php } ?>
</tr>
<?php
}
}
?>
但是这连续3次显示相同的项目。
答案 0 :(得分:1)
除非这是实际的表格数据,否则我会在列表中显示所有项目(ul
),然后只需将li
显示为inline-block
并给予它们33%的宽度:
<强> HTML 强>
<ul id="my-list-of-items">
<?php foreach ($top as $val) : ?>
<li><img src="<?php echo $val['image'] ?>" alt="" width="75" height="75"/>
<?php endforeach ?>
</ul>
<强> CSS 强>
#my-list-of-items {
margin: 0;
padding: 0;
list-style: none;
}
#my-list-of-items li {
display: inline-block;
width: 33%;
}
编辑:如果 使用表格,您要做的就是每隔三个项目打印</tr><tr>
。您可以使用模数:
if ($i++ % 3 == 0) echo '</tr><tr>';
答案 1 :(得分:0)
很难说出你想要实现的目标。从你的print_r $ val [&#39;图像&#39;]不会返回任何内容。
答案 2 :(得分:0)
我不明白为什么有for循环,图片不在$val['image']
但在$val['preacher_image']
或$val['sermon_image']
。
您的脚本应如下所示:
<?php
if($top) {
$i = 0;
foreach($top as $val) {
if ($i%3 == 0) echo "<tr>";
?>
<td>
<img src="<?= $val['preacher_image']; ?>" style="width: 75px;height: 75px;"/>
</td>
<?php
if ($i%3 == 0) echo "</tr>";
$i++;
}
if ($i%3 != 1) echo "</tr>";
}
?>