ここで間違っていることに頭を悩ませようとしています。これは、レコードを削除したいときに呼び出される関数です。レコードは削除されますが、削除されたレコードが行の途中にある場合は、display_order を再確立する必要があります。最初のレコードは常に 1、2 番目のレコードは常に 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」が現在最大数のレコードに更新されていることです。たとえば、4 つのレコードがあり、そのうちの 1 つを削除すると、残りのすべてのレコードの display_order は 3 になります。