我已经在Stack上看到了很多解决方案,但似乎没有一个对我有用,所以我试着根据我看到别人做的事来写它。
我能够计算列并开始新行,但问题是,因为我在foreach中执行此操作(从数据库获取数据),现在它将从DB中放置每个条目4次 - >关闭该行;开始一个新的行 - >并显示DB的第二个条目4次 - >关闭该行;开始一个新的行 - >并显示DB的第三个条目4次,依此类推...... (我的代码在这篇帖子的底部)
所以,现在这段代码显示如下项目:
col-md3(item1) | col-md3(item1) | col-md3(item1) | col-md3(item1)
col-md3(item2) | col-md3(item2) | col-md3(item2) | col-md3(item2)
....
....
然而,我希望它显示如下:
col-md3(item1) | col-md3(item2) | col-md3(item3) | col-md3(item4)
col-md3(item5) | col-md3(item6) | col-md3(item7) | col-md3(item8)
.... | ... | .... | ....
....
我的代码现在:
foreach($data as $row) {
echo '<div class="row">';
for ($i=0; $i<4;$i++){
if ($i%4 == 0 && $i != 0){
echo '</div><div class="row">';
}
echo '<div class="col-md-3">';
?>
<!-- Ecommerce UI #2 -->
<div class="ecom-ui ecom-ui-two">
<div class="img-container">
<!-- Product Image -->
<a href="#"><img class="img-responsive" src="img/product/<?php echo $row[thumbimage]; ?>" alt="" /></a>
</div>
<!-- product details -->
<div class="product-details">
<!-- product title -->
<h4><a href="#"><?php echo $row[name]; ?></a> <span class="color pull-right">€<?php echo $row[price]; ?></span></h4>
<div class="clearfix"></div>
<p>Lorem Ipsum is simply dummy text of printing the printing industry.</p>
<!-- Price -->
<div>
<span class="cart"><a href="#">Add to cart</a></span>
<!-- Media icon -->
<span class="p-media pull-right">
<a href="#" class="b-tooltip" data-placement="top" title="21"><i class="fa fa-heart red"></i></a>
<a href="#" class="b-tooltip" data-placement="top" title="49"><i class="fa fa-share-alt red"></i></a>
<a href="#" class="b-tooltip" data-placement="top" title="35"><i class="fa fa-thumbs-up red"></i></a>
</span>
<div class="clearfix"></div>
</div>
</div>
</div>
<!-- Ecommerce UI #2 -->
<?php
echo'</div>';
}
echo '</div><br />';
}
答案 0 :(得分:7)
打印代码时出现逻辑错误。您只需要一个循环,而不是嵌套。 更改您的代码如下:
<?php .....
....
$i=0;
echo '<div class="row">';
foreach($data as $row) {
echo '<div class="col-md-3">';
?>
<!-- Ecommerce UI #2 -->
<div class="ecom-ui ecom-ui-two">
<div class="img-container"><!-- Product Image -->
<a href="#"><img class="img-responsive" src="img/product/<?php echo $row[thumbimage]; ?>" alt="" /></a>
</div>
<!-- product details --><div class="product-details">
<!-- product title -->
<h4><a href="#"><?php echo $row[name]; ?></a><span class="color pull-right">€<?php echo $row[price]; ?></span></h4>
<div class="clearfix"></div>
<p>Lorem Ipsum is simply dummy text of printing the printing industry.</p>
<!-- Price --><div>
<span class="cart"><a href="#">Add to cart</a></span>
<!-- Media icon --><span class="p-media pull-right">
<a href="#" class="b-tooltip" data-placement="top" title="21"><i class="fa fa-heart red"></i></a>
<a href="#" class="b-tooltip" data-placement="top" title="49"><i class="fa fa-share-alt red"></i></a>
<a href="#" class="b-tooltip" data-placement="top" title="35"><i class="fa fa-thumbs-up red"></i></a>
</span>
<div class="clearfix"></div>
</div>
</div>
</div>
<!-- Ecommerce UI #2 -->
</div>
<?php
$i++;
if ($i%4 == 0) echo '</div><div class="row">';
} ?>
</div><br />
逻辑:需要遍历$data
中的所有(每个)行,当循环执行4次然后中断行(</div>
)并启动新行(由<div class="row">
)。要处理它,请在循环前使用$i
启动计数器0
,并在每次循环后将其递增1
。当$i
完全可以被4
完全分割时,则回显“关闭行(div) - 和 - 开始 - 行(div) - 代码”,即。 </div><div class="row">