Borrar un registro en una base de datos Mysql.

Posted on June  14th, 2009 by Technology Department 

El anuncio se ha vendido y es hora de borrar el anuncio para que no nos llamen mas. Para ello, tenemos que hacer tres tareas.

1º Eliminar el registro de la base de datos

2º Eliminar la foto grande de la carpeta correspondiente

3º Eliminar la foto pequeña de la carpeta thumbs

Para ello, como siempre hay que utilizar las instrucciones de php correspondiente.

Empecemos con

Como borrar un registro en Mysql

Si existe una instruccion en PHP para añadir un registro  ( conjunto de dtos ) entoncesa tambien las hay para modificarlo o borrarlo

En este caso vamos a ver como se borrar el registro  y posteriormente como modificarlos. Para borrar se utiliza:

La 1º linea es la entrada para que se ejecute un determinado "trozo" de codigo y nos dice -> Si aparece la variable erasead entonces que se ejecute lo que aparece entre {}. Esta instruccion es isset.

En la formulario hay un boton cuyo nombre recibe el valor erasead. Si este es presionado, entonces aparece una variable cuyo valor es  $_POST['erasead'].  La 1º instruccion tan solo verifica si exa variable existe en el cogigo ( porqye haya sido creada al presionar el boton )

if(isset($_POST['erasead']) ){
 

Lo primero es borrar la foto que ha sido guardada en la carpeta correspondiente. No podemos borrar un anuncio y quedar la foto porque llenariamos el servidor de fotos obsoletas. Hay que borrarlas y es lo  primero que debemos hacer.

La funcion es unlink (). Esta instruccion borra el archivo que aparece entre los parentesis. Como la ruta donde ser guardo la foto ha sido registrada en uno de los campos, el field_9, entonces tenemos que ver como se llama. Para ello creamos  la variable $foto de la siguiente forma

 

$foto = $row['field_9'];

// se borra del la carpeta
unlink ($foto);
 

Ya podemos eliminar el registro y para ello tenemos hacemos una consulta mysql_query con la siguiente informacion -> DELETE FROM board WHERE id=$id. Esto nos dice, borrar en la tabla board el registro con identificador id el dado por la variable $id. Esta última variable $id es tomada en una consulta anterior que se podra ver mas abajo al poner todo el codigo


// ahora el registro
$sql = "DELETE FROM board WHERE id=$id";
$result = mysql_query($sql);
echo "Anuncio borrado";
 

Ya hemos borrado todo el anuncio. Pero esto ocurre siempre que se presione el boton borrar. Que ocurre si tan solo queremos modificar un valor, por ejemplo el precio del objeto.

Para modificar el anuncio tenemos que proceder de forma parecida, pero en este caso, hay que mostrar todo el anuncio en la pagina y escribir en el campo que deseamos cambiar, en este caso el precio.

Cuando se abre esta pagina se muestra todos los campos del Id correspondiente a ese correo. Despues viene una instruccion de UPDATE  que se encarga de actualizar todos los campos con la informacion que modificamos en el formulario. De forma simplificada esto es:

$sqlUpdate = mysql_query("UPDATE board SET field_1 = '$nombre', field_2 = '$apellidos', field_3 = '$email',
field_4 = '$password', field_5 = '$telephone', field_6 = '$object',
field_7 = '$message', field_8 = '$title', field_9 = '$photo'
, field_10 = '$today', field_11 = '$prices'

WHERE field_3 = '$email'", $link) ;

Con esta instruccion se busca dentro de la tabla board que coincida el campo 3 con email (WHERE field_3 = '$email' ) y una vez entrontrado, se actualizan los campos field1 con el valor de $nombre, field_2 con el vaor de apellidos, etc, etc

El codigo completo aparece en las siguientes lineas

<?php

// conectamos a la base de datos
include("config.inc.php");
$link = mysql_connect($db_host,$db_user,$db_pass);
if(!$link) {
die("Error al intentar conectar: ".mysql_error());
}
// seleccionamos la base de datos
$db_link = mysql_select_db("$db_name", $link);
if(!$db_link) {
die("Error al intentar seleccionar la base de datos". mysql_error());
}
//  ********fin conexion ********
$usuario = "email";

// hacemos una consulta  para mostrar los datos
//$sql = mysql_query("SELECT * FROM $db_table WHERE field_3 = '$usuario', $db_link)or die(mysql_error());


$queEmp = "SELECT * FROM $db_table WHERE field_3 = '$email' ORDER BY id DESC LIMIT 10 ";
$resEmp = mysql_query($queEmp, $link) or die(mysql_error());
$row = mysql_fetch_array($resEmp);
echo $row['field_4'];
if ( $row['field_4'] == "$password")
{

if(isset($_POST['actualizar']) && $_POST['actualizar'] == 'Update'){
// comprobamos que no lleguen campos vacios
if(!empty($_POST['nombre']) && !empty($_POST['apellidos']) && !empty($_POST['email'])){
// creamos las variables
// que vamos a usar en la consulta UPDATE
// y le asignamos sus valores
//$usuario_ID = $_POST['usuario_ID'];


$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$message = $_POST['message'];
$password = $_POST['password'];
$telephone = $_POST['telephone'];
$object = $_POST['object'];
$message = $_POST['message'];
$title = $_POST['title'];
$prices = $_POST['prices'];
$image = $_POST['image'];
$_FILES['image']['name'] = $image;

echo "$image";
// EN ESTA PARTE ENTRAMOS LA IMAGEN
if($_FILES['image']['name']!='')
{
$image_filename = "file_2_".date("sihdmY").substr($_FILES['image']['name'],strlen($_FILES['image']['name'])-4);

if(!move_uploaded_file($_FILES['image']['tmp_name'], "./files/".$image_filename)){
die("File " . $_FILES['image']['name'] . " was not uploaded.");
}
}
echo "Esto debe aparecer -> $image_filename";
/*

//File upload handling
// lo dejo por ahora porque no me recarga la nueva foto
if($_FILES['field_2']['name']!=''){
$field_2_filename = "file_2_".date("sihdmY").substr($_FILES['field_2']['name'],strlen($_FILES['field_2']['name'])-4);
if(!move_uploaded_file($_FILES['field_2']['tmp_name'], "./files/".$field_2_filename)){
die("File " . $_FILES['field_2']['name'] . " was not uploaded.");
}
}
*/
$photo = $row['field_9'];

$today = date("F j, Y, g:i");
echo "$image_filename";
// la consulta UPDATE
$sqlUpdate = mysql_query("UPDATE board SET field_1 = '$nombre', field_2 = '$apellidos', field_3 = '$email',
field_4 = '$password', field_5 = '$telephone', field_6 = '$object',
field_7 = '$message', field_8 = '$title', field_9 = '$photo'
, field_10 = '$today', field_11 = '$prices'

WHERE field_3 = '$email'", $link) or die(mysql_error());

echo "Registro actualizado correctamente";
echo "$image_filename";
}else{
echo "debe llenar todos los campos";
}
}else{
// mostramos el mensaje
echo "<p>".$mensaje."</p>";
?>
<!--
el formulario.
los values de los campos
son los valores que optenemos
de la consulta SELECT
-->
<form name="actualizar-registro" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
Anuncio numero: <?php echo $row['id'];
$id = $row['id'];
// vamos a borrar el anuncio

if(isset($_POST['erasead']) ){
// parte donde se borra la foto
//primero borramos la foto de la carpeta
// ya que la informacion de su nombre esta en la base mysql

$foto = $row['field_9'];

// se borra del la carpeta
unlink ($foto);

// ahora el registro
$sql = "DELETE FROM board WHERE id=$id";

$result = mysql_query($sql);

echo "Anuncio borrado";
}else{
echo "Debe especificar un 'id'.\n";
}
// fin de borrado
?>

<input type="submit" value="Erase" name="erasead"><p>Nombre: <input type="text" name="nombre" value="<?php echo $row['field_1']; ?>" />
Apellidos: <input type="text" name="apellidos" value="<?php echo $row['field_2']; ?>" />
e-mail: <input type="text" name="email" value="<?php echo $row['field_3']; ?>" />
password: <input type="text" name="password" value="<?php echo $row['field_4']; ?>" /></p>
<p><br />
telephone: <input type="text" name="telephone" value="<?php echo $row['field_5']; ?>" />
object: <input type="text" name="object" value="<?php echo $row['field_6']; ?>" />&nbsp;&nbsp; Prices:
<input type="text" name="prices" value="<?php echo $row['field_11']; ?>" size="6" />
€</p>
<p>title:
<input type="text" name="title" value="<?php echo $row['field_8']; ?>" size="107" /> </p>
<p>Message<textarea rows="8" name="message" cols="56"><?php echo $row['field_7']; ?></textarea></p>
<p>image:
<input type="text" name="image" value="<?php echo $row['field_9']; ?>" size="26" />&nbsp;
<?
/*
if(isset($_POST['erase']) ){
// parte donde se borra la foto
$foto = $row['field_9'];
$consulta = "DELETE FROM board WHERE field_6='$foto'";
$query = mysql_query($consulta) or die (mysql_error());

// se borra del la carpeta
unlink ($foto);

echo "Borrado"; }
else{}
*/
?>
e" name="erase"> </p>
<font face="Verdana">&nbsp;New image <input type="file" name="image" value="<?php echo $row['field_9']; ?>" size="57"></font><p><br />

<input type="hidden" name="usuario_ID" value="<?php echo $row['usuario_ID']; ?>" />
<input type="submit" name="actualizar" value="Update" />
</p>
<p>&nbsp;</p>
</form>
<?php } }
else
{ echo "Anuncio y usuario dado de baja ";}
?>

 

Para ver el resultado final de este script pinchar en Anuncios Clasificados de Villanueva y Don Benito

More information 

Posted on 2009