sql >> Base de Datos >  >> RDS >> Mysql

PHP y MySQL Incluyendo un botón Eliminar en la misma página

Sí, solo incluya la lógica de eliminación encima de su declaración de selección.

<?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);

?>

Sin embargo, tenga cuidado con este enfoque. Dado que es solo un enlace, y si es público, un bot puede rastrear y eliminar todo.

Además, tenga en cuenta que hay algunos otros cambios. Cambié el parámetro de id a delete_id , solo para evitar ambigüedades. Actualicé el enlace de eliminación. Estoy comprobando que $_GET['delete_id'] se establece antes de ejecutar la consulta de eliminación. Y estoy emitiendo (int) en $_GET['delete_id'] para asegurarse de que en realidad es un número entero.