每4个帖子后显示不同的横幅

时间:2016-04-10 10:23:17

标签: php

我创建了一个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 } ?>

谢谢

1 个答案:

答案 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,并在仅显示横幅时增加它。