【问题标题】:PHP Bootstrap CarouselPHP 引导轮播
【发布时间】:2018-12-13 03:46:24
【问题描述】:


我有这段代码可以从数据库中获取轮播图或视频


        $stmt = $con->prepare("SELECT * FROM `Main`");
        $stmt->execute();
        $rows = $stmt->fetchAll();
        return $rows;


而这段代码显示轮播
它必须仅显示位于数据库中的图像或视频

<?php
$check = $pageClass->mainPage("check");
if ($check > 0) {
    $sliders        = $pageClass->mainPage("select","Slider");
    $allowedImg     = array("png","jpg","jpeg","bmp","gif");
    $allowedVideo   = array("mp4","mkv","flv","avi","3gp");
    ?>
    <section class="clients-opinion">
        <div class="container">
            <header class="text-center">
                <h3 class="h1">See what our graduates are <br />saying about the plan</h3>
            </header>
            <div id="myCarousel" class="carousel slide" data-ride="carousel">
                <ol class="carousel-indicators">
                <?php
                    for ($i = 0;$i < count($sliders);$i++) {
                        if ($i == 0) {?>
                    <li data-target="#myCarousel" data-slide-to="<?php echo $i; ?>" class='active'></li>
                    <?php   } else { ?>
                    <li data-target="#myCarousel" data-slide-to="<?php echo $i; ?>"></li>
                <?php   }
                    }?>
                </ol>
              <div class="carousel-inner">
                <?php
                foreach ($sliders as $slider) {
                    for ($i = 0; $i < count($sliders); $i++) {
                        if ($i == 0) {?>
                            <div class="item active">
                                <?php
                                    $explodedSlider = explode(".", $slider['Slider']);
                                    $sliderType     = strtolower(end($explodedSlider));
                                    if (in_array($sliderType, $allowedImg)) {?>
                                        <img src="<?php echo $imgUploads . $slider['Slider']; ?>" alt="">
                              <?php } else if (in_array($sliderType, $allowedVideo)) { ?>
                                        <video controls="controls">
                                            <source src="<?php echo $vidUploads . $slider['Slider']; ?>" type="video/<?php echo $sliderType; ?>" />
                                        </video>
                            <?php   } ?>
                            </div><?php
                        } else {?>
                            <div class="item">
                                <?php
                                    $explodedSlider = explode(".", $slider['Slider']);
                                    $sliderType     = strtolower(end($explodedSlider));
                                    if (in_array($sliderType, $allowedImg)) {?>
                                        <img src="<?php echo $imgUploads . $slider['Slider']; ?>" alt="">
                              <?php } else if (in_array($sliderType, $allowedVideo)) { ?>
                                        <video controls="controls">
                                            <source src="<?php echo $vidUploads . $slider['Slider']; ?>" type="video/<?php echo $sliderType; ?>" />
                                        </video>
                            <?php   } ?>
                            </div>
                    <?php } ?>
                <?php } ?>
            <?php } ?>
              </div>
              <a class="left carousel-control" href="#myCarousel" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left"></span>
                <span class="sr-only">Previous</span>
              </a>
              <a class="right carousel-control" href="#myCarousel" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right"></span>
                <span class="sr-only">Next</span>
              </a>
            </div>
        </div>
    </section>


然而, 这是输出 9 个图像,
虽然我的数据库中只有 3 个 Img。
请帮忙!
提前致谢 !

【问题讨论】:

    标签: php mysql html pdo twitter-bootstrap-3


    【解决方案1】:

    您在foreach 中使用for 循环,这将执行3x3,因此是9

    foreach ($sliders as $slider) {
        for ($i = 0; $i < count($sliders); $i++) {
            if ($i == 0) {
                // Your code
    

    只需删除 for 循环。

    foreach ($sliders as $i => $slider) {
        if ($i == 0) {
            // Your code
    

    【讨论】:

    • 好的,我会的。但是我将如何将活动课程放在上面呢?
    • 我的意思是在第一个 img
    • @Hema_Elmasry 看我的例子,你的foreach 循环中有一个$i 变量,它是图像的索引。
    • 好的,我试试
    • 你太棒了,谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-12-11
    • 2014-02-18
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多