【发布时间】:2020-08-04 06:40:34
【问题描述】:
我遇到了这个问题,while 循环内的提交按钮重新执行 while 循环。
PHP:
$query1 = $con->query("SELECT * FROM room");
if($query1->num_rows > 0) {
while($row1 = $query1->fetch_array()) {
$idroom = $row1['idroom'];
echo "<tr>";
echo "<td> $idroom </td>";
echo "<td> <form method='POST'> <input type='submit' name='delete' value='DELETE'> </form></td>";
echo "</tr>";
if(isset($_POST['delete'])) {
$query2 = $con->query("DELETE FROM room WHERE idroom='$idroom'");
}
}
}
表格: [1]:https://i.stack.imgur.com/dujps.png
问题是,当我单击删除按钮时,它只会删除所有房间而不是我要删除的房间。我相信程序认为我一次按下了所有的删除按钮,因为 'isset' 功能。
我尝试过的事情:
- 将 isset 中的 $query2 行替换为
echo $idroom;,输出为room1room2room3。这意味着程序认为我一次按下了所有按钮。
【问题讨论】:
-
“这意味着程序认为我同时按下了所有按钮。” - 不,它没有。在创建 输出 的过程中,您正在显式循环所有记录。首先不应将记录的删除混入其中。您需要以某种方式将要删除的记录的 ID 传递给您的表单。
-
我建议您阅读可以在互联网上轻松找到的教程。您将能够从那里获得基础知识。
标签: php while-loop submit-button