如何停止 do-while 循环和修复按钮功能?

how to stop do-while looping and fixing the button function?

提问人:Ayu Hapsari 提问时间:10/23/2019 最后编辑:BorjaAyu Hapsari 更新时间:10/23/2019 访问量:67

问:

我想让它停止循环,但我不知道出了什么问题。我希望它像.. 单击该按钮然后显示文本,并在一页中继续重复。

我的代码是这样的:

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

<?php
    do{ ?>
        <form method= 'post'>
        <input name='next' type='submit' id='next' value='next'>
        </form>
            <?php if(isset($_POST['next'])){ ?>
                    <table width="637" border="0" cellspacing="1" cellpadding="2">
                    <tr>
                        <th width="297" scope="col">
                            <?php $row = mysqli_fetch_array ($query);
                             echo $row['SOALTXT']; ?>
                    </tr>
                    </table>
            <?php } 
            ?>
<?php   }

    while ($id = 'S01');
    echo "sudah selesai";
?>

我不知道出了什么问题,它一直像这样循环:first_executes_looping不停地,下一个按钮一起显示,当我单击它时,txt 也同时出现。我希望它一个接一个地显示,然后重复它,直到 id=“s01”从 txt 结束。

php 循环 mysqli do-while

评论

0赞 Nick 10/23/2019
它不断循环的原因是,它是一个赋值,它返回赋值,即 这在布尔上下文中是正确的。您需要进行比较,即 .但是,这仍然不起作用,因为您实际上并没有从查询中获取值$id = 'S01''SO1'$id == 'S01'select 'ID' from buatsoal_db

答:

0赞 Saud Khan 10/23/2019 #1

问题在 while 语句中。

你要做的是:

do {
...
}
while($id == 'S01'); 

== 是解决方案

评论

0赞 Ayu Hapsari 10/23/2019
我更改了它,但是,您知道为什么输出是 id = s02 而不是 s01 吗?它还执行“Echo 'Sudah Selesai'”?
0赞 Saud Khan 10/23/2019
根据您的评论,id 值为 s02,您与 s01 进行比较,然后显然循环将中断,下一行代码将被执行。
1赞 PHP Geek 10/23/2019 #2

只需在 do while 循环中使用 comparison 语句,例如:

do{
//your code block here
}while($id == 'S01');
1赞 Rahul Koshti 10/23/2019 #3

你的 while 条件有问题。single = 用于赋值,== 用于比较。所以这里你必须使用 == 进行比较。请尝试以下代码。

<?php
    include "koneksi.php";
    $query = mysqli_query($connection,"SELECT * FROM buatsoal_db ORDER BY ID DESC");
    $id = mysqli_query($connection, "select 'ID' from buatsoal_db");
    ?>
    <?php
        do{ ?>
            <form method= 'post'>
            <input name='next' type='submit' id='next' value='next'>
            </form>
                <?php if(isset($_POST['next'])){ ?>
                        <table width="637" border="0" cellspacing="1" cellpadding="2">
                        <tr>
                            <th width="297" scope="col">
                                <?php $row = mysqli_fetch_array ($query);
                                 echo $row['SOALTXT']; ?>
                        </tr>
                        </table>
                <?php } 
                ?>
    <?php   }    
        while ($id == 'S01');
        echo "sudah selesai";
    ?>

评论

0赞 Ayu Hapsari 10/23/2019
我试过了,输出是下一行,其中 id ==s02 和“Sudah Selesai”。你知道为什么吗?因为我要找的是 SOALTXT,其中 ID ==S01。
0赞 Rahul Koshti 10/23/2019
您只触发了查询,您也必须在此处获取数据 $query = mysqli_query($connection, “select 'ID' from buatsoal_db”);$query->fetch_assoc();