如何使 do-while 循环完全不循环?

How to make do-while loop works for its not looping at all?

提问人:Ayu Hapsari 提问时间:10/24/2019 最后编辑:DharmanAyu Hapsari 更新时间:10/24/2019 访问量:196

问:

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

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

非预期输出:
not expected output

<?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”。

php 循环 mysqli 返回 do-while

评论


答:

1赞 Dan Iftinca 10/24/2019 #1

变量 $id 未在 do while 循环中更新。只需添加另一个

$id = $row['ID']

在回声之前在循环中。

编辑:

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

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

评论

0赞 Ayu Hapsari 10/24/2019
谢谢。。。我添加了它,但是,输出完全不是我所期望的,哈哈。它首先显示下一个按钮,一旦我单击它,又有 4 个按钮向上推,也带有“soaltxt”记录。我希望它是“soaltxt”记录仅在我单击的下一个按钮后显示。你知道怎么做吗??
0赞 Dan Iftinca 10/24/2019
单击“下一步”按钮后,页面上的 $_POST['next'] 将为真,这就是您描述的行为发生的原因。
0赞 Ayu Hapsari 10/24/2019
我对此完全陌生,这是我的第一部作品。你知道怎么解决吗?^o^?
0赞 GetSet 10/24/2019
@AyuHapsari有点超出了您最初投诉的范围。只是说,谁会投票支持答案,我还是你?我想我会的。but, the output is totally not what i expected
0赞 Ayu Hapsari 10/24/2019
@GetSet,我已经给它投了赞成票,但它就是没有用,它一直回到 0,我不知道为什么。
0赞 Umer Abbas 10/24/2019 #2

回答您正在使用的问题,查找有关mysqli_fetch_array的详细信息,现在您还需要检查您所在的索引或该索引可能是什么,并将此值分配给$id变量 like,然后将其放入mysqli_fetch_array()id$row$row[0]$id = $row[0]while($id = 'S01')

可能的解决方案,只获取有 、use 和 use While 循环的记录,查找详细信息mysqli_fetch_associd = S01mysqli_fetch_assoc()

$query = mysqli_query($connection,"SELECT * FROM buatsoal_db WHERE ID=S01");
$result = mysqli_fetch_array($query);

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

    echo $row['ID'];
}