gpt4 book ai didi

php - 更新 while 循环中的所有行

转载 作者:行者123 更新时间:2023-11-29 08:33:34 24 4
gpt4 key购买 nike

我正在努力思考我在这里做错了什么。这是当我想删除记录时调用的函数。该记录已被删除,但如果被删除的记录位于行中间的某个位置,我希望 display_order 能够重新建立自身。这样第一个记录将始终为 1,第二个记录始终为 2,依此类推。

<?php
$counter = 1;
require ("connection.php");
$sql = "SELECT * FROM pages";
$result = $conn->query($sql) or die(mysqli_error());

$id = $_GET['id'];
$delete = mysqli_query($conn, "DELETE FROM pages WHERE id ='".$id."'");
if ($delete){

while($row = $result->fetch_object()){
$reord = "UPDATE pages SET display_order = '".$counter."'";
$result2 = $conn->query($reord) or die(mysqli_error());
$counter++;
}

header("Location: admin.php");
}else{
echo "NOTHING DELETED id=".$id;
}
?>

我收到的错误是所有记录“display_order”现在都更新为最大记录数,例如,我有四条记录,我删除了其中一条,现在所有剩余记录都有一个 display_order共 3 个。

最佳答案

您错过了将页面 ID 作为 WHERE 条件添加到查询中。像这样:

while($row = $result->fetch_object()){
$reord = "UPDATE pages SET display_order = '".$counter."' WHERE page_id = '" . $row->page_id . "'";
$result2 = $conn->query($reord) or die(mysqli_error());
$counter++;
}

注意:如果缺少 WHERE 子句,pages 表中的所有记录都将被更新。

关于php - 更新 while 循环中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15884877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com