sql >> データベース >  >> RDS >> Mysql

同じページに削除ボタンを含むPHPとMySQL

    はい、selectステートメントの上に削除ロジックを含めるだけです。

    <?php
    // Connect to server and select database.
    $link = mysqli_connect("localhost", "root", "password", "testdelete"); //for local machine testing
    
    // Check connection
    if ($link === false){
        die("ERROR: Could not connect. " . mysqli_connect_error());
    }
    
    // Handle delete
    if (isset($_GET['delete_id'])) {
        // get value of id that sent from address bar 
        $delete_id = (int) $_GET['delete_id'];
    
        // Delete data in mysql from row that has this id 
        $sql="DELETE FROM testdelete.test_mysql WHERE id='$delete_id'";
        $result=$link->query($sql);
    
        // if successfully deleted
        if ($result){
            echo "Deleted Successfully";
            echo "<BR>";
        } else {
            echo "Delete ERROR";
        }
    }
    
    // select record from mysql 
    $sql = "SELECT id, name, lastname, email FROM testdelete.test_mysql";
    $result = $link->query($sql);
    
    if ($result->num_rows > 0) {
        include 'table_header.html';
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "<tr>";
            echo "<td bgcolor=\"#FFFFFF\">".$row["id"]."</td>";
            echo "<td bgcolor=\"#FFFFFF\">". $row["name"]."</td>";
            echo "<td bgcolor=\"#FFFFFF\">" . $row["lastname"]."</td>";
            echo "<td bgcolor=\"#FFFFFF\">". $row["email"] . "</td>";
            echo "<td bgcolor=\"#FFFFFF\"><a href=\"?delete_id={$row['id']}\">Delete row</a></td>";
            echo "</tr>";
         }
         include 'table_footer.html';
    } else {
         echo "0 results";
    }
    
    // close connection
    mysqli_close($link);
    
    ?>
    

    ただし、このアプローチには注意してください。これは単なるリンクであり、公開されている場合、ボットはすべてをクロールして削除できます。

    また、他にもいくつかの変更があることに注意してください。パラメータをidから変更しました delete_idへ 、あいまいさを避けるためだけに。削除リンクを更新しました。 $_GET['delete_id']を確認しています 削除クエリを実行する前に設定されます。そして、私は$_GET['delete_id']に(int)をキャストしています 実際に整数であることを確認します。



    1. DateTimeをVarCharに変換する方法

    2. HeidiSQLを使用してVagrantに接続できません:「localhost」上のMySQLサーバーに接続できません

    3. コマンドラインを使用してmysqlユーザーのパスワードを変更する

    4. 同じ列を持つ2つのテーブルを比較して結果を取得します