Eliminar multiples datos con checkbox PHP y MySQL
Para eliminar mĂșltiples datos de la base de datos, utilizaremos el ciclo foreach de PHP. Este ciclo se utiliza para recorrer arrays. Convertiremos los checkbox entonces en un array. El ejemplo se encuentra divido en tres Ășnicos archivos para facilitar su comprensiĂłn.
El archivo conexion.php para hacer la conexion con la base de datos MySQL. La base de datos se llama database y la tabla personas compuesta por dos columnas cod y nombre.
conexion.php
< ?php
function conexion(){
$con = mysql_connect("localhost","root","");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
return($con);
}
?>
El archivo index.php es donde creamos la consulta a la base de datos para mostrar en una tabla HTML los registros que estan almacenados en la base de datos. Cuando se presiona el boton el archivo eliminar.php procesa la informaciĂłn. Es importante aclarar que hemos convertido los checkbox en un array colocando en su nombre unos corchetes, en este caso todos los checkbox se llaman casilla[], cada uno toma un diferente valor, pues les pasamos los codigos que identifcan a las personas.
index.php
< ?php
include 'conexion.php';
$con=conexion();
$res=mysql_query("select * from personas",$con);
?>
< !DOCTYPE html>
< html>
< body>
< h1>Eliminar datos</h1>
< form method="post" action="eliminar.php">
< table border="1">
< tr>
< th></th>
< th>Codigo</th>
< th>Nombre</th>
< /tr>
< ?php
while($fila=mysql_fetch_array($res)){
?>
< tr>
< th><input type="checkbox" name="casilla[]" value="<?php echo $fila[cod]; ?>"></th>
< th><?php echo $fila[cod]; ?></th>
< th><?php echo $fila[nombre]; ?></th>
< /tr>
< ?php
}
?>
< /table>
< input type="submit" value="Eliminar" />
< /form>
< /body>
< /html>
Finalmente el archivo eliminar.php lo que hace es capturar a travĂ©s del mĂ©todo POST el checkbox con nombre casilla y asignarlo en la variable $x. Luego para cada iteraciĂłn del ciclo, el valor del elemento de la matriz actual se asigna a $value (que vendrĂan siendo los cĂłdigos de las personas) y el puntero se va moviendo uno por uno hasta que ya no se encuentren mĂĄs datos. Por ejemplo, si el usuario seleccionĂł 5 datos el ciclo itera 5 veces y por tanto ejecuta 5 veces la sentencia delete eliminando uno a uno los datos seleccionados.
eliminar.php
< ?php
include 'conexion.php';
$con=conexion();
$x=$_POST[casilla];
foreach ($x as $value){
$res=mysql_query("delete from personas where cod=".$value."",$con);
if($res){
echo 'Dato eliminado correctamente<br />';
}
}
?>
< a href="index.php">Volver</a>
El archivo conexion.php para hacer la conexion con la base de datos MySQL. La base de datos se llama database y la tabla personas compuesta por dos columnas cod y nombre.
conexion.php
< ?php
function conexion(){
$con = mysql_connect("localhost","root","");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
return($con);
}
?>
El archivo index.php es donde creamos la consulta a la base de datos para mostrar en una tabla HTML los registros que estan almacenados en la base de datos. Cuando se presiona el boton el archivo eliminar.php procesa la informaciĂłn. Es importante aclarar que hemos convertido los checkbox en un array colocando en su nombre unos corchetes, en este caso todos los checkbox se llaman casilla[], cada uno toma un diferente valor, pues les pasamos los codigos que identifcan a las personas.
index.php
< ?php
include 'conexion.php';
$con=conexion();
$res=mysql_query("select * from personas",$con);
?>
< !DOCTYPE html>
< html>
< body>
< h1>Eliminar datos</h1>
< form method="post" action="eliminar.php">
< table border="1">
< tr>
< th></th>
< th>Codigo</th>
< th>Nombre</th>
< /tr>
< ?php
while($fila=mysql_fetch_array($res)){
?>
< tr>
< th><input type="checkbox" name="casilla[]" value="<?php echo $fila[cod]; ?>"></th>
< th><?php echo $fila[cod]; ?></th>
< th><?php echo $fila[nombre]; ?></th>
< /tr>
< ?php
}
?>
< /table>
< input type="submit" value="Eliminar" />
< /form>
< /body>
< /html>
Finalmente el archivo eliminar.php lo que hace es capturar a travĂ©s del mĂ©todo POST el checkbox con nombre casilla y asignarlo en la variable $x. Luego para cada iteraciĂłn del ciclo, el valor del elemento de la matriz actual se asigna a $value (que vendrĂan siendo los cĂłdigos de las personas) y el puntero se va moviendo uno por uno hasta que ya no se encuentren mĂĄs datos. Por ejemplo, si el usuario seleccionĂł 5 datos el ciclo itera 5 veces y por tanto ejecuta 5 veces la sentencia delete eliminando uno a uno los datos seleccionados.
eliminar.php
< ?php
include 'conexion.php';
$con=conexion();
$x=$_POST[casilla];
foreach ($x as $value){
$res=mysql_query("delete from personas where cod=".$value."",$con);
if($res){
echo 'Dato eliminado correctamente<br />';
}
}
?>
< a href="index.php">Volver</a>
No hay comentarios