0

ここで間違っていることに頭を悩ませようとしています。これは、レコードを削除したいときに呼び出される関数です。レコードは削除されますが、削除されたレコードが行の途中にある場合は、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 になります。

4

1 に答える 1