Header Ads

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>

No hay comentarios

Con la tecnologĂ­a de Blogger.