我需要用php生成一个表,它将显示图像 - 存储在数据库中的名称。它必须连续显示3个图像。图像一直被添加到数据库中,因此我需要自动生成图像,而不是对表格进行硬编码。我不知道该怎么做?请帮忙!
答案 0 :(得分:1)
您需要循环结果记录集并每隔3个元素打印出新行。
例如:
<table>
<tr>
<?php $i=0; foreach ($images as $image): ?>
<td><?php echo $image['name'] ?> <img src="<?php echo $image['path'] ?>" /></td>
<?php if(++$i%3==0): ?>
</tr><tr>
<?php endif ?>
<?php endforeach ?>
</tr>
</table>
答案 1 :(得分:0)
假设您从数组中获取数据库中的所有图像名称
$img_array = array(
1=>'f.jpg',
2=>'s.jpg',
3=>'t.jpg',
4=>'f.jpg',
5=>'e.jpg'
);
// now create dynamic table via php
<table border="1" cellpadding="2" cellspacing="2" width="100%">
<tr>
<?php
$i=0;
foreach($img_array as $k){
if($i%3==0) { ?> </tr><tr> <?php } ?>
<td><img src="<?php echo $k?>" border="0"></td>
<?php $i++; } ?>
</tr>
</table>
注意:请在src
<?php echo $k?>
内写下完整路径的图片
答案 2 :(得分:0)
迭代图像记录,使用模3更改为下一个表行。
类似的东西:
echo '<table><tr>';
foreach ($images) {
echo '<td>$image</td>';
if ($i % 3 == 0) {
echo '</tr><tr>';
}
}
echo '</tr></table>';
答案 3 :(得分:0)
像这样的简单表就像
<table>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>1</td><td>2</td><td>3</td></tr>
</table>
要自动生成此项,您需要存储在表格中的位置,第一列,第二列或第三列。
<?php
$pos = 1;
print "<table>"
for ($i=0; $i<=10;$i++)
{
if ($pos==1)
{
print "<tr><td>1</td>";
$pos=2;
}
else if ($pos==2)
{
print "<td>2</td>";
$pos=3;
}
else if ($pos==3)
{
print "<td>3</td></tr>";
$pos=1;
}
}
if ($pos==2 || $pos==3)
print "</tr>";
print "</table>"
请记住,如果您使用其他评论中带有$ i%3的选项,那么您的表将以空行开始结束/结束。这需要额外的检查。 $ i%3将给出$ i和3的除法余数。所以当$ i / 3 == 0时,意味着它在每第三行都是真的。