borrando
TRANSCRIPT
Borrando (DELETE) registros de una BD MySQL usando PHPPosted on May 27, 2008
A veces los que damos un pasito adelante, nos olvidamos de que aun
seguimos siendo aprendices y que por siempre lo seremos, por eso decidí
crear este post mostrando como borrar los registros de una tabla en
nuestra base de datos, de una manera bien sencilla.
El script constara de un par de archivos: mostrando-
registros.php y eliminar.php y una pequeña base de datos (una sola
tabla) de ejemplo
LA BASE DE DATOS DE E JEMPLO
La base de datos a usar será bien sencilla, así no nos complicamos tanto ;).
Una tabla que guarde como registros a unos supuestos usuarios, además
de su e-mail, nombre, sexo, etc…
CREATE TABLE `usuarios` (
`usuario_ID` int(11) NOT NULL auto_increment,
`usuarioNombre` varchar(50) NOT NULL,
`usuarioSexo` varchar(1) NOT NULL,
`usuarioEmail` varchar(50) NOT NULL,
`usuarioDNI` varchar(11) NOT NULL,
PRIMARY KEY (`usuario_ID`)
) ENGINE=MyISAM;
MOSTRANDO LOS REGISTROS
El archivo mostrar-registros.php, como es lógico, lo usaremos para
mostrar todos los registros de la tabla usuarios de nuestra base de datos.
Esto nos ayuda para saber lo que tenemos y a quien queremos eliminar,
para ello usaremos un vínculo que enviará vía $_GET el ID de cada uno.<?php
/** conexion ***************************/
// conectamos a la base de datos
$link = mysql_connect('localhost', 'root', '');
if(!$link) {
die("Error al intentar conectar: ".mysql_error());
}
// seleccionamos la base de datos
$db_link = mysql_select_db('dase-de-datos', $link);
if(!$db_link) {
die("Error al intentar seleccionar la base de datos". mysql_error());
}
/** fin conexion ************************/
// hacemos una consulta
// para mostrar los registros
$sql = mysql_query("SELECT * FROM usuarios", $link) or die(mysql_error());
// mostramos los registros
while($row = mysql_fetch_array($sql)){
echo $row['usuarioNombre']." - ".$row['usuarioEmail'].
// mostramos un vinculo Eliminar
// que envia via $_GET
// el ID del registro a eliminar
" - <a href='eliminar.php?id=$row[usuario_ID]'>Eliminar</a>"."\n";
}
?>
EL IMINANDO LOS REGISTROS
En el archivo eliminar.php, haremos una consulta que nos ayudara a
mostrar y advertirque vamos a eliminar un registro de nuestra tabla. Para
ejecutar la acción nos auxiliaremos de un formulario HTML que envíe vía
$_POST el ID del usuario a eliminar, ¿algo mas?<?php
/** conexion ***************************/
// conectamos a la base de datos
$link = mysql_connect('localhost', 'root', '');
if(!$link) {
die("Error al intentar conectar: ".mysql_error());
}
// seleccionamos la base de datos
$db_link = mysql_select_db('dase-de-datos', $link);
if(!$db_link) {
die("Error al intentar seleccionar la base de datos". mysql_error());
}
/** fin conexion ************************/
// comprovamos si
// ha sido enviado el formulario
if(isset($_POST['eliminar']) && $_POST['eliminar'] == 'Eliminar'){
// creamos la consulta
// que eliminara el registro
// que viene via $_POST
$id_eliminar = $_POST['id'];
$sqlEliminar = mysql_query("DELETE FROM usuarios
WHERE usuario_ID = $id_eliminar", $link)
or die(mysql_error());
// enviamos un mensage de exito
$mensaje = "El registro a sido eliminado";
}
// si no ha sido enviado el formulario aun
// recogemos el ID
// del registro a eliminar
// via $_GET
elseif(isset($_GET['id'])){
$id = $_GET['id'];
// hacemos una consulta
// para mostrar el registro
// que vamos a eliminar
$sql = mysql_query("SELECT * FROM usuarios
WHERE usuario_ID = $id", $link)
or die(mysql_error());
$row = mysql_fetch_array($sql);
// advertimos
$mensaje = "¿Está seguro que quiere eliminar el usuario <b>$row[usuarioNombre]</b>?";
}
// mostramos el mensage
echo $mensaje;
?>
<!-- creamos el formulario HTML
que enviara el ID
del registro a eliminar -->
<form name="eliminar-registro" method="post" action="<?php $_SERVER['PHP_SELF']; ?>" >
<input name="id" type="hidden" value="<?php echo $row['usuario_ID']; ?>" />
<input name="eliminar" type="submit" value="Eliminar" />
</form>
NOTA: El formulario tiene un campo tipo hidden que tiene como valor el ID
del registro a eliminar y es el que recogemos en la clausula WHERE de la
consulta DELETE
PARA TERMINAR
Espero que este pequeño y sencillo ejemplo sea útil, sobre todo a aquellos
que se inician en la programación con PHP, que es a quienes está dirigido
esta post. Esperen pronto algo sobre actualizar registros
Saludos y Suerte
//////////////////////////
8.- BORRADO DE REGISTROS DE UNA BASE DE DATOS.
Share on facebook Share on twitter Share on email Share on print More Sharing Services 2
Otra de las acciones que tendremos que llevar a cabo con nuestras bases de
datos es la eliminación de registros, por ejemplo, para dar de baja usuarios.
De todas las acciones que podemos realizar con bases de datos, quizás la más
sencilla sea eliminar registros, ya que solo hay que indicarle el valor del registro
que queremos eliminar.
Es muy importante que tengáis en cuenta que la eliminación de registros debe
hacerse sobre la clave primaria de la tabla o sobre campos de tipo único. El motivo
de esto es sencillo, si el campo no es único, y tomáis por ejemplo un campo
“ciudad” y establecéis la condición de eliminación “donde ciudad sea igual a
Madrid” eliminaríais todos los usuarios que tengan como ciudad de residencia,
Madrid. Lo que os daría un buen disgusto.
La sintaxis es la siguiente:
======== form_borrar.php <html>
<head> <title>eliminar registros.</title> <META name='robot' content='noindex, nofollow'> </head>
<body>
<div align="center"> <table border="0" width="600" style="font-family: Verdana; font-size: 8pt" id="table1"> <tr> <td colspan="2"><h3 align="center">Eliminación de datos</h3></td> </tr> <form method="POST" action="borrar.php"> <tr> <td width="50%"> </td> <td width="50%"> </td> </tr> <tr> <td width="50%"> <p align="center"><b>ID del registro a eliminar: </b></td> <td width="50%"> <p align="center"><input type="text" name="id" size="20"></td> </tr> <tr> <td width="50%"> </td> <td width="50%"> </td> </tr> <tr> <td width="100%" colspan="2"> <p align="center"> <input type="submit" value="Eliminar" name="B1"></td> </tr> </form> </table> </div>
</body>
</html>
======== borrar.php <html>
<head>
<title>Registro eliminado.</title> <META name='robot' content='noindex, nofollow'> </head>
<body>
<?php // Actualizamos en funcion del id que recibimos
$id = $_POST['id'];
include('abre_conexion.php');
$query = "delete from $tabla_db1 where id = '$id'"; $result = mysql_query($query);
include('cierra_conexion.php');
echo " <p>El registro ha sido eliminado con exito.</p>
<p><a href='javascript:history.go(-1)'>VOLVER ATRÁS</a></p> "; ?>
</body>
</html>