Eliminar múltiples registros con PHP & MySQLi

Este tutorial te enseñaremos cómo eliminar múltiples registros de una tabla MySQL usando casillas de verificación ( checkbox) con PHP & MySQLi.

Hemos usado bootstrap para el diseño y ventanas modales para el registro de un nuevo usuario en la base de datos, pero ten en cuenta que para desarrollo de este tutorial debes contar con una conexión a internet, puesto que los archivos CSS y JavaScript están alojados en un servidor remoto.

Creando nuestra base de datos

El primer paso es crear nuestra base de datos.
1. Abre phpMyAdmin.
2. Haga clic en bases de datos, cree una base de datos y asignarle el nombre que desees, para este tutorial nosotros la hemos llamado “test_delete_multiple”, pero tu puedes nombrarla como desees .
3. Después de crear una base de datos, haz clic en la pestaña importar, luego selecciona el archivo llamado “test_delete_multiple”, dicho archivo se encuentra dentro de la carpeta “db”. Ver la imagen a continuación para obtener instrucciones detalladas sobre la importación de tablas para nuestra base de datos.



Creando nuestra conexión

A continuación, crearemos nuestra conexión a la base de datos. Esto servirá como el puente entre nuestros formularios y nuestra base de datos. Llamamos este archivo como conn.php .

<?php
 
//MySQLi Procedural
$conn = mysqli_connect("localhost","root","","test_delete_multiple");
if (!$conn) {
	die("Connection failed: " . mysqli_connect_error());
}
 
?>

index.php

Esta es la página donde mostramos los datos de nuestra tabla,  se listar los usuario previamente registrados en nuestra base de datos. Además, para que puedas practicar más la función de eliminación, hemos la función de registro de datos.

<!DOCTYPE html>
<html>
<head>
	<title>Eliminar múltiples registros con PHP & MySQLi</title>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

	<style>
		input[type="checkbox"] {
		transform:scale(2, 2);
    }
	</style>
</head>
<body>
<div class="container">
	<div style="height:50px;"></div>
	<div class="well" style="margin:auto; padding:auto; width:80%;">
	<span style="font-size:25px; color:#16a085"><center><strong>Eliminar múltiples registros con PHP & MySQLi</strong></center></span>	
		<div style="height:20px;"></div>
		<table class="table table-striped table-bordered table-hover">
			<thead>
				<th></th>
				<th>Nombres</th>
				<th>Apellidos</th>
				<th>Dirección</th>
				
			</thead>
			<form method="POST" action="delete.php">
			<tbody>
			<?php
				include('conn.php');
				
				$query=mysqli_query($conn,"select * from `user`");
				while($row=mysqli_fetch_array($query)){
					?>
					<tr>
						<td align="center"><input type="checkbox" value="<?php echo $row['userid']; ?>" name="userid[]"></td>
						<td><?php echo $row['firstname']; ?></td>
						<td><?php echo $row['lastname']; ?></td>
						<td><?php echo $row['address']; ?></td>		
					</tr>
					<?php
				}
			
			?>
			</tbody>
		</table>
			<a href="#addnew" data-toggle="modal" class="btn btn-success"><span class="glyphicon glyphicon-plus"></span> Agregar nuevo</a> || <button type="submit" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span> Eliminar</button>
			</form>
	</div>
	<?php include('modal.php'); ?>
</div>
</body>
</html>

modal.php

 Este es el modal que contiene nuestro formulario para agregar un nuevo usuario a la base de datos.

<!-- Add New -->
    <div class="modal fade" id="addnew" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                    <center><h4 class="modal-title" id="myModalLabel">Agregar nuevo</h4></center>
                </div>
                <div class="modal-body">
				<div class="container-fluid">
				<form method="POST" action="addnew.php">
					<div class="row">
						<div class="col-lg-2">
							<label class="control-label" style="position:relative; top:7px;">Nombres:</label>
						</div>
						<div class="col-lg-10">
							<input type="text" class="form-control" name="firstname" required>
						</div>
					</div>
					<div style="height:10px;"></div>
					<div class="row">
						<div class="col-lg-2">
							<label class="control-label" style="position:relative; top:7px;">Apellidos:</label>
						</div>
						<div class="col-lg-10">
							<input type="text" class="form-control" name="lastname" required>
						</div>
					</div>
					<div style="height:10px;"></div>
					<div class="row">
						<div class="col-lg-2">
							<label class="control-label" style="position:relative; top:7px;">Dirección:</label>
						</div>
						<div class="col-lg-10">
							<input type="text" class="form-control" name="address" required>
						</div>
					</div>
                </div> 
				</div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Cancelar</button>
                    <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-floppy-disk"></span> Guardar</a>
				</form>
                </div>
				
            </div>
        </div>
    </div>
	

addnew.php

Nuestro código que se encarga de agregar un  nuevo registro a la tabla de MySQL.

<?php
	include('conn.php');
	
	$firstname=$_POST['firstname'];
	$lastname=$_POST['lastname'];
	$address=$_POST['address'];
	
	mysqli_query($conn,"insert into user (firstname, lastname, address) values ('$firstname', '$lastname', '$address')");
	header('location:index.php');

?>

delete.php

Por último, nuestro código de eliminación. Al presionar el botón Eliminar, este código eliminará todas las filas marcadas.

<?php
	include('conn.php');
	
	if(isset($_POST['userid'])){
		foreach ($_POST['userid'] as $id):
			mysqli_query($conn,"delete from user where userid='$id'");
		endforeach;
		
		header('location:index.php');
	}
	else{
		?>
		<script>
			window.alert('Selecciona un usuario');
			window.location.href='index.php';
		</script>
		<?php
	}
	
?>

Aquí termina este tutorial. Si tienes algún comentario o pregunta, no dudes en hacernos saber dejando un comentario a continuación.   Happy Coding 😀