我创建了一个while循环,每页有20个帖子显示所以在每5个帖子后我想显示不同的横幅这样
帖子1 帖子2 帖子3 发布4 帖子5
banner 01
后6 发布7 发布8 9号 发布10个
banner 02
我已尝试使用%运算符和if条件但它不起作用虽然下面是我的代码任何建议和帮助将非常感谢,
<?php
$post = mysqli_query($connection, "SELECT * FROM blog ORDER BY bid DESC");
$count_post = mysqli_num_rows($post);
while($have_posts = mysqli_fetch_assoc($post)) {
$video = $have_posts['video'];
?>
<article>
<h1 class="title"><a href="details.php?post=<?php echo $have_posts['bid']; ?>"><?php echo $have_posts['title']; ?></a></h1>
<div class="content-img">
<img src="admin/uploads/<?php echo $have_posts['ft_img']; ?>" alt="" />
</div>
</article>
<?php
if($count_post%4 == 2) {
?>
<img src="images/banner1" />
<?php } ?>
<?php
if($count_post%5 == 3) {
?>
<img src="images/banner2" />
<?php } ?>
<?php } ?>
谢谢
答案 0 :(得分:0)
请注意$ count_post表示的内容:
$count_post = mysqli_num_rows($post);
因此,常数数字(帖子总数)并不能反映当前帖子的数字&#34;。
您需要在循环之前使用其他变量$i = 0;
。
在底部(关闭循环之前) - 将其增加一$i++;
。
循环之前:
$i = 0;
$banner_number = 1;
然后只需改变你的状况:
if($i % 5 == 0){
//show banner here
echo '<img src="banners/banner-".$banner_number.".png">';
$banner_number++;
//First time: banners/banner-1.png
//Second time: banners/banner-2.png ...
}
修改强>
如果您的横幅名称采用以下格式:{constant_name}-{increasing_number}.png
,则可以使用其他变量$banner_number
,并在仅显示横幅时增加它。