繁体   English   中英

如何在for循环php中显示图像?

[英]how to display images in for loop php?

我在 mysql 数据库中有 5 个图像路径名称

现在我想在 for 循环的滑块中显示它

include ('conn.php');

$select_path="select * from image_table";

$var=mysqli_query($conn,$select_path);

while($row=mysqli_fetch_array($var))
{
 $image_name=$row["name"];
 $image_path=$row["path"];
 $url=$image_path.$image_name;
}



echo' <div id="ninja-slider">
    <div class="slider-inner">
        <ul>';
            for($i=0;$i < $url;$i++){
               echo'<li>';
               echo'  <a class="ns-img" href="'.$url[$i].'"></a>
                <div class="caption">image 1</div>
               </li>';}

        </ul>
        <div class="fs-icon" title="Expand/Close"></div>
    </div>
</div>

for 循环可以显示数据库中的列表吗?

不必要地多次循环不是一个好习惯。 我们应该避免在我们的程序中出现不必要的循环。

    include ('conn.php');

    $select_path="select * from image_table";

    $var=mysqli_query($conn,$select_path);
if(mysql_num_rows($var) > 0){
 echo' <div id="ninja-slider"><div class="slider-inner"><ul>';
    while($row=mysqli_fetch_array($var))
    {
     $image_name=$row["name"];
     $image_path=$row["path"];
     $url=$image_path.$image_name;
     echo '<li>';
     echo '<a class="ns-img" href="'.$url.'"><img src="'.$url.'" /></a>';
     echo '<div class="caption">image 1</div></li>';
    }

echo '</ul><div class="fs-icon" title="Expand/Close"></div></div></div>';
}
while($row=mysqli_fetch_array($var))
 {
  $image_name=$row["name"];
  $image_path=$row["path"];
  $url=$image_path.$image_name; // wrong . this will store only last image because all time it replace last one . add array for same like $url[$i] = image_path 
 }



echo' <div id="ninja-slider">
      <div class="slider-inner">
        <ul>';
         for($i=0;$i < $url;$i++){
             echo'<li>';
              echo'  <a class="ns-img" href="'.$url[$i].'"></a> // this work when loop properly set 
            <div class="caption">image 1</div>
           </li>';}

    </ul>
    <div class="fs-icon" title="Expand/Close"></div>
</div>

将图像部分移动到 while 循环内。 那么将会发生的情况是,while 循环检索到的所有记录都将成为侧边/滑块图像的列表项

<?php include ('conn.php');

$select_path="select * from image_table";
$var=mysqli_query($conn,$select_path); ?>

<div id="ninja-slider">
  <div class="slider-inner">
    <ul>

      <?php  while($row=mysqli_fetch_array($var)){
      $image_name=$row["name"];
      $image_path=$row["path"];
      $url=$image_path.$image_name; ?>
      <li>
        <a class="ns-img" href="<?php echo $url; ?>"></a>
        <div class="caption"><?php echo $image_name; ?></div>
      </li>
      <?php } ?>
    </ul>
    <div class="fs-icon" title="Expand/Close"></div>
  </div>
</div>

假设您的滑块 html 工作正常,即使不从数据库中获取图像。 它现在应该可以工作了!

更快的方法:-

include ('conn.php');
$select_path="select * from image_table";
$var=mysqli_query($conn,$select_path);

<div id="ninja-slider">
    <div class="slider-inner">
        <ul>
            while($row=mysqli_fetch_array($var)){
            ?>
            <li><a class="ns-img" href="<?=$row["path"].$row["name"];?>"><img src="<?=$row["path"].$row["name"];?>" /></a><div class="caption"><?=$row["name"];?></div>
            </li>
            <?php } ?>
        </ul>
        <div class="fs-icon" title="Expand/Close"></div>
    </div>

我建议你试试这个代码片段

$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'image';
$conn = new mysqli($servername,$username,$password,$dbname);
if($conn->connect_error){
    die.("Connection failed : " .$conn->connect_error);
}
$select_path = 'select * from images';
$var = mysqli_query($conn,$select_path);
while ($row=mysqli_fetch_array($var))
{
    $image_name = $row['image_name'];
    $image_path = 'images';
    $url = "$image_path".'/'."$image_name";
    echo'<div id="ninja-slider">
      <div class="slider-inner">
      <ul>';
    echo'  <a class="ns-img" href="'.$url.'"></a>
           <div class="caption">'.$url.'</div>
    </li>';
}
?>
</ul>
        <div class="fs-icon" title="Expand/Close"></div>
    </div>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM