为同一mysqli_fetch_assoc一个接一个地执行两个 while 循环

Execute two while loop one after another for same mysqli_fetch_assoc

提问人:Avro_Abir 提问时间:7/4/2022 最后编辑:DharmanAvro_Abir 更新时间:7/4/2022 访问量:91

问:

请帮帮我,我怎样才能一个接一个地运行两个While Loop。我想获取数据库的所有行。如果我先将手动控制的 DIV 放在里面,而循环它会单独显示整个 div。当它放在外面时,它什么都不做。请重写代码。

我想获得像this_一样的价值

<div class="img-slider-container">      
<div class="img-slide active">
   <img src="img/1.jpg" alt="Image">
   <div class="img-info">
      <h2>Heading 1</h2>
      <p>Image Text 1</p>
    </div>
 </div>

<div class="img-slide">
   <img src="img/2.jpg" alt="Image">
   <div class="img-info">
      <h2>Heading 2</h2>
      <p>Image Text 2</p>
    </div>
 </div> <!--Continue-->

 <div class="manual-control">
    <div class="slide-btn 1"></div>
    <div class="slide-btn 2"></div> <!--Continue-->
 </div>

我的代码示例给出bellow_

<div class="img-slider-container">
        <?php
       $sql = "SELECT * FROM $tbImadeSlide"; 
        $stmt = mysqli_stmt_init($conn);
        if (!mysqli_stmt_prepare($stmt, $sql)) {
            header("Location: index.php?error=sqlerror");
            exit();
        }
        else{
            $result = mysqli_query($conn, $sql);
            $resultCheck = mysqli_num_rows($result);

            if ($resultCheck > 0){
                while($row = mysqli_fetch_assoc($result)){
                    echo '

                        <div class="img-slide '.$row["imageStatus"].'">
                            <img src="img/'.$row["imageName"].'" alt="Image">
                            <div class="img-info">
                                <h2>'.$row["imageHeader"].'</h2>
                                <p>'.$row["imageText"].'</p>
                            </div>
                        </div>';
                       
                     
                } 
                    echo '<div class="manual-control">';
                    while($row = mysqli_fetch_assoc($result)){
                        echo '<div class="slide-btn '.$row["imageId"].'"></div>';}
                    echo '</div>';
            } else{
                echo "<div class='no_result'>No Photos To Slide</div>";
            }
        }
    ?>

但是代码只是先重复,而循环就像this_

<div class="img-slider-container">      
    <div class="img-slide active">
       <img src="img/1.jpg" alt="Image">
       <div class="img-info">
          <h2>Heading 1</h2>
          <p>Image Text 1</p>
        </div>
     </div>

    <div class="img-slide">
       <img src="img/2.jpg" alt="Image">
       <div class="img-info">
          <h2>Heading 2</h2>
          <p>Image Text 2</p>
        </div>
     </div> <!--Continue-->

     <div class="manual-control">
        <!--Nothing Shows-->
     </div>
 </div>
php mysqli while-loop foreach

评论

0赞 Professor Abronsius 7/4/2022
将记录集存储为可以多次处理的变量,或者使用 data_seek 在下一个 while 循环之前倒带记录集

答:

-1赞 Avro_Abir 7/4/2022 #1

无需将所有行都保留在数组中,您可以简单地通过 foreach 循环来执行此操作。

只需更换

while($row = mysqli_fetch_assoc($result)){ foreach($result as $row){

您的代码可能如下所示:

<div class="img-slider-container">
    <?php
   $sql = "SELECT * FROM $tbImadeSlide"; 
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: index.php?error=sqlerror");
        exit();
    }
    else{
        $result = mysqli_query($conn, $sql);
        $resultCheck = mysqli_num_rows($result);

        if ($resultCheck > 0){
            foreach($result as $row){
                echo '

                    <div class="img-slide '.$row["imageStatus"].'">
                        <img src="img/'.$row["imageName"].'" alt="Image">
                        <div class="img-info">
                            <h2>'.$row["imageHeader"].'</h2>
                            <p>'.$row["imageText"].'</p>
                        </div>
                    </div>';


            } 
                echo '<div class="manual-control">';
                foreach($result as $row){
                    echo '<div class="slide-btn '.$row["imageId"].'"></div>';}
                echo '</div>';
        } else{
            echo "<div class='no_result'>No Photos To Slide</div>";
        }
    }
?>

评论

0赞 Dharman 7/4/2022
我不明白。如果你正在使用,为什么要准备?从代码中完全删除。mysqli_querymysqli_query