我如何修复此循环以使用引导程序轮播显示我的数据库中的图像

2021-12-24 00:00:00 php mysql bootstrap-4

我尝试使用 bootstrap carousel 来显示我的数据库中的图像,但我的循环似乎有问题......

message("<div class='btn sm-warning'>请选择一张图片.</div>");redirect_to('list_properties.php');}$id = $_GET['id'];$sql = "SELECT * FROM Pictures2 WHERE photo_id='$id';";$photos = 图片::find_by_sql($sql);?>

从数据库中获取的所有内容都是正确的,但在幻灯片中显示图像的循环显示一个图像,而幻灯片仅在第一张和第二张幻灯片之间循环.

<div class="row"><div id="carouselExampleIndicators" class="carousel slide mx-auto" data-ride="carousel"><ol class="carousel-indicators"><?php$i=0;如果(计数($照片)){foreach ($photos as $photo) {如果($i==0){echo '<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>';$i++;}别的{echo '<li data-target="#carouselExampleIndicators" data-slide-to="0"></li>';$i++;}}}?></ol><div class="carousel-inner"><?php$a=0;如果(计数($照片)){foreach ($photos as $photo) {如果($a==0){?><div class="carousel-item active"><img src="<?php echo $photo->image_path(); ?>"class="img-thumbnail img-responsive" alt="<?php echo $photo->title; ?>"/><?php$a++;}别的?>

<?php{?><div class="carousel-item"><img src="<?php echo $photo->image_path(); ?>"class="img-thumbnail img-responsive" alt="<?php echo $photo->title; ?>"/><?php$a++;}?>

<?php}}?>

<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev"><span class="carousel-control-prev-icon" aria-hidden="true"></span><span class="sr-only">以前的</span></a><a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next"><span class="carousel-control-next-icon" aria-hidden="true"></span><span class="sr-only">下一步</span></a>

解决方案

message("<div class='btn sm-warning'>请选择一张图片.</div>");redirect_to('list_properties.php');}$id = $_GET['id'];$sql = "SELECT * FROM Pictures2 WHERE photo_id='$id';";$photos = 图片::find_by_sql($sql);?>

.

<ol class="carousel-indicators"><?php$i = 0;foreach($photos as $photo){如果($ i == 0){?><li data-target="#carouselExampleIndicators" data-slide-to="<?php echo $i; ?>"class="active"></li><?php$i++;}别的{如果($我!= 0){?><li data-target="#carouselExampleIndicators" data-slide-to="<?php echo $i; ?>"></li><?php$i++;}}?></ol><div class="carousel-inner"><?php$i = 0;foreach($photos as $photo){如果($ i == 0){?><div class="carousel-item active"><img src="<?php echo $photo->image_path(); ?>"class="img-thumbnail img-responsive" height="500" width="500" alt="<?php echo $photo->title; ?>"/>

<?php$i++;} 别的{如果($我!= 0){?><div class="carousel-item"><img src="<?php echo $photo->image_path(); ?>"class="img-thumbnail img-responsive" height="500" width="500" alt="<?php echo $photo->title; ?>"/>

<?php$i++;}}?>

<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev"><span class="carousel-control-prev-icon" aria-hidden="true"></span><span class="sr-only">以前的</span></a><a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next"><span class="carousel-control-next-icon" aria-hidden="true"></span><span class="sr-only">下一步</span></a>

I tried using bootstrap carousel to display images from my database but something seem to be wrong with my loop...

<?php
  $message = "";
  if(empty($_GET['id'])) {
    $session->message("<div class='btn sm-warning'>please select an image.</div>");
    redirect_to('list_properties.php');
  } 
  $id      = $_GET['id'];
  $sql     = "SELECT * FROM pictures2 WHERE photograph_id='$id';";
  $photos = Picture::find_by_sql($sql);
?>

The fetch is all correct from the database but the loop displaying the images in the slide displays one image and the slide loops between the first and second slide only.

<div class="container">
<div class="row">
<div id="carouselExampleIndicators" class="carousel slide mx-auto" data-ride="carousel">
  <ol class="carousel-indicators">
    <?php 
     $i=0;
    if(count($photos)){
        foreach ($photos as $photo) {
            if($i==0){
                echo '<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>';
                $i++;
            }
            else
            {
                echo '<li data-target="#carouselExampleIndicators" data-slide-to="0"></li>';
                $i++;
            }
        }
    }
   ?>
  </ol>
  <div class="carousel-inner">
   <?php
    $a=0;
    if(count($photos)){
        foreach ($photos as $photo) {
            if($a==0){
                ?>
            <div class="carousel-item active">
           <img src="<?php echo $photo->image_path(); ?>" class="img-thumbnail img-responsive"  alt="<?php echo $photo->title; ?>"/>
            <?php   
                $a++;
            }else
            ?>
    </div>
           <?php
            {
                ?>
            <div class="carousel-item">
           <img src="<?php echo $photo->image_path(); ?>" class="img-thumbnail img-responsive" alt="<?php echo $photo->title; ?>"/>
               <?php
                $a++;
            }
            ?>
    </div>
       <?php
        }
    }
   ?>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>
</div>
</div>

解决方案

<?php
  $message = "";
  if(empty($_GET['id'])) {
    $session->message("<div class='btn sm-warning'>please select an image.</div>");
    redirect_to('list_properties.php');
  } 
  $id      = $_GET['id'];
  $sql     = "SELECT * FROM pictures2 WHERE photograph_id='$id';";
  $photos = Picture::find_by_sql($sql);
?>

.

<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
 <?php
$i = 0; 
 foreach($photos as $photo){
        if($i == 0){
?>
<li data-target="#carouselExampleIndicators" data-slide-to="<?php echo $i; ?>" class="active"></li>
<?php
 $i++;  }else{
    if($i != 0){        
?>
<li data-target="#carouselExampleIndicators" data-slide-to="<?php echo $i; ?>" ></li>
<?php               
        } $i++;
    }
 }
?> 
  </ol>
  <div class="carousel-inner">
   <?php 
    $i = 0;  
    foreach($photos as $photo){
        if($i == 0){
    ?>
    <div class="carousel-item active">
    <img src="<?php echo $photo->image_path(); ?>" class="img-thumbnail img-responsive" height="500" width="500" alt="<?php echo $photo->title; ?>"/>
    </div>
    <?php               
    $i++;   } else{
        if($i != 0){    
    ?>
    <div class="carousel-item">
    <img src="<?php echo $photo->image_path(); ?>" class="img-thumbnail img-responsive" height="500" width="500" alt="<?php echo $photo->title; ?>"/>
    </div>
        <?php                           
        } $i++;
    }  
      }
    ?>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

相关文章