首页 > 解决方案 > 如何使 do-while 循环完全不循环?

问题描述

我有这些代码。我选择了 do-while 循环,所以我可以进行循环,但不知何故它不起作用。

因此,在我的数据库中,“SOALTXT”字段中至少有 5 行 id=S01,这意味着它应该循环 5 次。但不知何故,它只显示一排。像这样:

非预期输出:
非预期输出

<?php
    include "koneksi.php";
    $query = mysqli_query($connection,"SELECT * FROM buatsoal_db ORDER BY ID DESC");
    $result = mysqli_fetch_array($query);
    $id = $result['ID'];
    ?>

<?php
    do{ ?>
        <form method= 'post'>
        <input name='next' type='submit' id='next' value='next'>
        </form>
            <?php if(isset($_POST['next'])){ 
    >           $row = mysqli_fetch_array ($query);
                echo $row['SOALTXT'];           
            ?>
            <br>
            <br>
            <?php           
            } 
            ?>

<?php   }
    while ($id =='S01');
?>

对于输出,我希望有 5 个“下一步”按钮,当它单击时,会显示每个“soaltxt”。

标签: phploopsmysqlireturndo-while

解决方案


变量 $id 没有在 do while 循环内更新。只需添加另一个

$id = $row['ID']

在循环中的回声之前。

编辑:

我打算发布一个新的片段,但@Omar Abbas 的回答与我的意图一致。我会在循环之外获取表单并添加一个隐藏输入以将索引传递到下一页,这样您就知道您按下了多少次下一步,这样您就知道要显示多少行。

学会提出正确的问题在这个行业很重要。它的重要部分是良好的措辞和尽可能少的假设。


推荐阅读