以表格格式显示


Displaying in table format

我是新的编程-我从数据库检索信息,我必须显示这些项目每行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 
    }
}
?> 

除非这实际上是表格数据,否则我会在列表(ul)中显示所有项目,然后简单地将所有li显示为inline-block,并给它们33%的宽度:

<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>';

很难说你想要实现什么。从你的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>";
}
?>