我使用PDO
从数据库获取结果,然后使用foreach
循环显示数据。
我的代码是
$result1=$objPage->getGallery($id);
foreach($result1 as $row)
{
echo "pic1=" . $row['pic'];
echo "pic2=" . $row['pic'];
echo "pic3=" . $row['pic'];
echo "<br>";
}
实际上,我想在一行中显示三个图片名称,然后显示3个名称。
但现在它打印一个名字3次。
答案 0 :(得分:2)
做这样的事情:
$result1=$objPage->getGallery($id);
$count = 0;
foreach($result1 as $row)
{
echo "pic" . $count + 1 . "=" . $row['pic'];
if( $count % 3 == 2 )
{
echo "<br>";
}
$count++;
}
<强>信息强>
答案 1 :(得分:2)
首先,准备你的数据
$data = $objPage->getGallery($id);
$data = array_chunk($data,3);
然后输出
<table>
<? foreach($data as $chunk): ?>
<tr>
<? foreach($chunk as $row): ?>
<td><img src="<?=$row['pic']?>"></td>
<? endforeach ?>
</tr>
<? endforeach ?>
</table>
答案 2 :(得分:1)
您可以使用外部标记,如下所示:
$flag = 0;
$result1=$objPage->getGallery($id);
foreach($result1 as $row) {
echo "pic" . ($flag + 1) . "=" . $row['pic'];
if( $flag % 3 == 0 )
echo "<br>";
$flag++;
}
答案 3 :(得分:1)
您可以按照其他人的建议使用模数,但这种更紧凑的方法怎么样?
$result1 = $objPage->getGallery($id);
$separators = array('', '', '<br/>');
foreach ($result1 as $index => $row) {
echo 'pic' . ($index % 3) . '=' . $row['pic'] . $separators[$index % 3];
}