以表格格式显示
问题描述:
我是编程新手 - 我从数据库中检索信息,并且必须每行显示这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次在一排。
答
除非这实际上是表格数据我会在列表中显示(ul
)的所有项目,然后简单地显示所有li
S作为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>';
+0
我必须使用表格格式 – asitha 2011-12-22 13:39:52
答
很难说出你想达到什么。从你的print_r $ val ['image']不会返回任何东西。
答
我不明白为什么有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>";
}
?>
什么是$*变量的内容? – 2011-12-22 13:28:19
您没有使用$ c来通过$ val行中的项目。 PHP无法计算出 – Alfabravo 2011-12-22 13:30:34
$ top包含数据库中某些图像的名称 – asitha 2011-12-22 13:39:07