En esta ocasión explico cómo eliminar registro de una tabla MySQL con PDO
Para eliminar un registro que tenemos en una tabla de registros, por ejemplo, de personas, procedemos de la siguiente forma:
1º-Envio del registro a eliminar
En el listado de personal (tabla de ejemplo) tenemos un button de Eliminar que al hacer clic nos envía el id del registro a eliminar a una página de eliminación onde vamos mostrar el registro que queremos eliminar
<button name="eliminar" type="submit" class="btn btn-danger btn-block">Eliminar</button>
...
Recibir el registro a eliminar
Después de ser hecho el envió por POST del registro a eliminar verificamos que registro es exactamente con una consulta SELECT
Ya lo he dicho en más de una ocasión que cuando se trata de consultar la base de datos para hacer cualquier consulta, hay que hacer una conexión a la misma
También una buena práctica es cerrar esa conexión cuando no hace falta
//Mostrar Resultado a eliminar include_once('conexion.php'); if (empty($_GET['id'])) { header('location: listado_autores.php'); } $idPersonal = $_GET['id']; //1) Variable de la consulta: $sql = "SELECT * FROM tbl_personal Where idPersonal=$idPersonal and estatus=1"; //2) Preparar la consulta: $stmt = $pdo->prepare($sql); //3) Ejecutar la consulta SQL: $stmt->execute(); //4) Asignar variable de resultado $results = $stmt->fetchAll(PDO::FETCH_OBJ); //Mostra el resultado en un array // print_r($results); //6) Mostrar resultados encontrados if ($stmt->rowCount() > 0) { // Usaremos el ciclo para mostrar resultados foreach ($results as $result) { print_r($result); } }
Mostrar datos
Para mostrar el dato a eliminar usamos una tabla, o formulario, en este caso voy usar un formulario
<form action="" method="post"> <div class="p-5 mb-4 bg-light rounded-3"> <div class="container-fluid py-5 bg-warning"> <div class="card “> <h1 class="display-5 fw-bold text-danger “> Usted va a eliminar el siguiente Registro </h1> <div class="card-body “> <label for=""> <h3>ID</h3> </label> < input type="text" name="txtId" id="" value="<?php echo " $result-> idPersonal" ?>"> <label for=""> <h3>Nombres</h3> </label> < input type="text" name="txtname" id="" value="<?php echo " $result-> nombres" ?>"> <label for=""> <h3>Pais</h3> </label> < input type="text" name="txtPais" id="" value="<?php echo " $result->pais" ?>"> </div> </div><br> <button name="eliminar" type="submit" class="btn btn-danger btn-block">Eliminar</button> </div> </div> </form>
Envió por POST
Nos conectamos nuevamente a la base de datos
require_once('conexion.php');
1-Declaramos la condicional de envío
if (!empty($_POST)) { //código }
Preparamos la consulta
$sql = "SELECT * FROM tbl_personal Where idPersonal=:id and estatus=1"; $stmt = $pdo->prepare($sql);
entrelazamos los bindParam con las variables
$stmt->bindParam(':id', $idPersonal);
ejecutamos la sentencia
$stmt->execute();
Si hay un registro con ese id hacemos una consulta con la instrucción DELETE para eliminar el registro de la base de datos
eliminación del dato
if ($stmt->rowCount() > 0) { $sql = "DELETE FROM tbl_personal where idPersonal=:id and estatus=1"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':id', $idPersonal); $stmt->execute(); header('location: lista_personal.php'); } else { $alert = " No se ha podido Eliminar el Registro"; print_r($stmt->errorInfo()); }
Código completo
<?php require_once('conexion.php'); // print_r($_POST); // exit; if (!empty($_POST)) { $idPersonal = $_POST['txtId']; $alert = ""; $sql = "SELECT * FROM tbl_personal Where idPersonal=:id and estatus=1"; $stmt = $pdo-> prepare($sql); $stmt-> bindParam(':id', $idPersonal); $stmt-> execute(); if ($stmt-> rowCount() > 0) { $sql = "DELETE FROM tbl_personal where idPersonal=:id and estatus=1"; $stmt = $pdo-> prepare($sql); $stmt-> bindParam(':id', $idPersonal); $stmt-> execute(); header('location: lista_personal.php'); } else { $alert = " No se ha podido Eliminar el Registro"; print_r($stmt-> errorInfo()); } } //Mostrar Resultado a eliminar include_once('conexion.php'); if (empty($_GET['id'])) { header('location: listado_autores.php'); } $idPersonal = $_GET['id']; //1) Variable de la consulta: $sql = "SELECT * FROM tbl_personal Where idPersonal=$idPersonal and estatus=1"; //2) Preparar la consulta: $stmt = $pdo-> prepare($sql); //3) Ejecutar la consulta SQL: $stmt-> execute(); //4) Asignar variable de resultado $results = $stmt-> fetchAll(PDO::FETCH_OBJ); //Mostra el resultado en un array // print_r($results); //6) Mostrar resultados encontrados if ($stmt-> rowCount() > 0) { // Usaremos el ciclo para mostrar resultados foreach ($results as $result) { print_r($result); } } ?> <!doctype html> <html Lang="en “> <head> <title>Personal</title> <!-- Requerid meta tags --> < meta charset="utf-8"> < meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no “> <!-- Bootstrap CSS v5.2.1 --> < link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="Anonymous “> </head> <body> <header> <!-- place navbar here --> </header> <main> <form action="" method="post"> <div class="p-5 mb-4 bg-light rounded-3"> <div class="container-fluid py-5 bg-warning"> <div class="card “> <h1 class="display-5 fw-bold text-danger “> Usted va a eliminar el siguiente Registro</h1> <div class="card-body “> <label for=""> <h3>ID</h3> </label> < input type="text" name="txtId" id="" value="<?php echo " $result-> idPersonal" ?>"> <label for=""> <h3>Nombres</h3> </label> < input type="text" name="txtname" id="" value="<?php echo " $result-> nombres" ?>"> <label for=""> <h3>Pais</h3> </label> < input type="text" name="txtPais" id="" value="<?php echo " $result->pais" ?>"> </div> </div><br> <button name="eliminar" type="submit" class="btn btn-danger btn-block">Eliminar</button> </div> </div> </form> </main> <footer> <!-- place footer here --> </footer> <!-- Bootstrap JavaScript Libraries --> <script src=" https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous “> </script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.min.js" integrity="sha384-7VPbUDkoPSGFnVtYi0QogXtr74QeVeeIs99Qfg5YCF+TidwNdjvaKZX19NZ/e6oz" crossorigin="anonymous “> </script> </body> </html>
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias