Borrado de un registro con PHP

Valoración del artículo:
Aprendemos a eliminar registros de una tabla de base de datos, con un ejemplo práctico en PHP.
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
Otra de las operaciones elementales que se pueden realizar sobre una base de datos es borrar un registro. Para hacerlo, SQL nos propone sentencias del tipo Delete. Veámoslo con un ejemplo aplicado a nuestra agenda.

Cabe señalar que primero debemos seleccionar el registro que se desea borrar y luego realizar el borrado propiamente dicho. Para ello crearemos un menú desplegable dinámico, donde se podrá seleccionar el elemento que se desea borrar. Luego se pasará a una página PHP una referencia al elemento seleccionado, para borrarlo de la base de datos.

<HTML>
<HEAD>
<TITLE>Borrar1.php</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Borrar un registro</h1>
<br>

<?
//Conexion con la base
mysql_connect("localhost","tu_user","tu_password");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("mi_base_datos");

echo '<FORM METHOD="POST" ACTION="borrar2.php">Nombre<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select nombre From clientes Order By nombre";
$result=mysql_query($sSQL);

echo '<select name="nombre">';

//Mostramos los registros en forma de menú desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["nombre"];}
mysql_free_result($result)
?>

</select>
<br>
<INPUT TYPE="SUBMIT" value="Borrar">
</FORM>
</div>

</BODY>
</HTML>

El siguiente paso es hacer efectiva la operación a partir de la ejecución de la sentencia SQL que construimos a partir de los datos del formulario:

<HTML>
<HEAD>
<TITLE>Borrar2.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
mysql_connect("localhost","tu_user","tu_password");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("mi_base_datos");

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Delete From Clientes Where nombre='$nombre'";
mysql_query($sSQL);
?>

<h1><div align="center">Registro Borrado</div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div>

</BODY>
</HTML>

Con este capítulo cerramos el bloque de accesos a bases de datos con PHP. Para mas información relacionada podéis referiros al taller de PHP donde podréis encontrar algún que otro artículo interesante al respecto.

Comentarios
Fueron enviados 19 comentarios al artículo
13 comentarios no revisados
6 comentarios revisados:
Por: Sergio
13/8/04
Estuve mirando esta pagina y haciendo el ejemplo de insertar un nombre y telefono; pero al hacer el submit de cualquier ejercicio no envia nada a la base de datos. Yo trate directamente en la base de datos de insertar, borrar etc, y si puedo hacerlo pero no desde el web. Alguna idea de cual puede ser el problema???

RESPUESTA

Pues el error puede ser variable... no te puedo decir con seguridad, pero te puedo dar algún truco para empezar a investigar la fuente del error.

Para empezar, la función de PHP mysql_query() devuelve un entero, que se puede evaluar en un if para saber si hubo un error o no en la sentencia. Un código como este.

$ssql="insert into cliente (nombre_cliente) values ('pepe')";
if (mysql_query($ssql)){
    //si se consiguio insertar la empresa
    echo "todo correcto";
}else{
    //no se ejecuto la sentencia correctamente
    echo "hubo un error";
    echo mysql_error();
}

Otra función interesante que he utilizado en el código anterior es mysql_error(), que informa del error que se ha producido en MySQL y por el cuál la sentencia no ha sido correctamente ejecutada.

Por: Juanjo
04/8/05
Lo dicho en lo anteriores articulos de insertar y actualizar.

Antes:
$sSQL="Delete From Clientes Where nombre='$nombre'";

Corregido:
$sSQL="Delete From Clientes Where nombre='".$_POST['nombre']."'";

Saludos y Suerte.
Por: CARLOS GARRIDO
20/10/05
veo que muchos de los errores que os dan están relacionadas con el fichero php.ini, que configura todas las variables como locales hasta el PHP 4 y a partir del PHP 5 no.

Por eso debes utilizar $_POST["var"] o $var dependiendo de que versión tengas instalada.

Muchos de estos errores os dan por poneros a hacer ejemplos sin haber leido nada de teoría.
Por: Hely Rojas
29/6/06
Todos los Ejemplos tiene un error:

PRIMERO: Los nombres de Tablas van entre comillas(raras)
Transcribo desde PHPmyAdmin
SELECT *
FROM `vendedores`
WHERE `documento` LIKE '%463744%'

SEGUNDO: Yo prefiero Leer la variable y luego la asigno en la consulta. por que la consulta queda mas clara.

Y eso mejor si es el valor de una cookie.

$sSQL="Delete From Clientes Where nombre='".$_POST['nombre']."'";

prefiero:
$xxx = $_POST['nombre'];
$sSQL="Delete From Clientes Where nombre='$xxx'";
Por: ana torres
08/3/07
seria bueno que corriga su select esta interesante pero tiene error

hiromy
duda sobre el borrado
05/8/09
hola soy nueva aqui y vi sobre el codigo de borrado y tengo una duda sobre mi codigo, la consulta la tengo en una pagina aparte que es esta:
<?php

$link = mysql_connect("localhost", "root");
mysql_select_db("estrategia",$link);
//$result=mysql_query("select nombre, empresa, giro from clientes where nombre or empresa or giro ='%key%'",$link);
$result=mysql_query("select nombre, empresa, giro from clientes",$link);
?>
<TABLE width="443" BORDER=1 align="center" CELLPADDING=1 CELLSPACING=1>
<TR>
<TD width="96"><span class="Estilo4">Nombre</span></TD>
<TD width="107"><span class="Estilo5">&nbsp;<B>Empresa</B>&nbsp;</span></TD>
<TD width="83"><span class="Estilo5">&nbsp;<B>Giro</B>&nbsp;</span></TD>
<TD width="75"><span class="Estilo5">&nbsp;<B>Modificar</B>&nbsp;</span></TD>
<TD width="54"><span class="Estilo5">&nbsp;<B>Borrar</B>&nbsp;</span></TD>
</TR><?
while($row = mysql_fetch_array($result)) {
?>
<TR>
<TD><? echo $row['nombre']; ?></TD>
<TD><? echo $row['empresa']; ?></TD>
<TD><? echo $row['giro']; ?></TD>
<TD><a href="modificar.html" class="Estilo6">Modificar</a></TD>
<TD><a href="desicion.php" class="Estilo6">Borrar</a></TD>
</TR>
<? } ?>
<?php

mysql_free_result($result);
mysql_close($link);
?>

y los links me llevan a la pagina para poder borrar o modificar como tengo en mi consulta el problema que tengo es que tengo muchos campos en mi base de datos pero en mi consulta solo muestro 3 como le hago para poder borrar solo el registro seleccionado por el link y que borre todos los datos que tengo en mi base de datos.
el codigo de borrar es el siguiente:
<?php


$link = mysql_connect("localhost", "root");
mysql_select_db("estrategia",$link);
$nombre=$_POST['nombre'];
$empresa=$_POST['empresa'];
$giro=$_POST['giro'];
$sql = mysql_query("delete from clientes",$link)or die("Error en query:".mysql_error() );
if($sql)
{
echo"<center>Se han borrado los datos satisfactoriamente";
}
else
{
echo "No se pudieron borrar intentelo nuevamente";
}



?>

espero que me puedan ayudar por favor.

Manuales relacionados
Categorias relacionadas
El autor
Rubén Alvarez
Redactor de DesarrolloWeb.com
http://www.desarrolloweb.com
Lectura recomendada
Últimas noticias
Alojados en el grupo