Foros del Web » Programando para Internet » PHP »

Clausula DELETE con mysql

Estas en el tema de Clausula DELETE con mysql en el foro de PHP en Foros del Web. Hola....les dejo una consulta.... Estoy tratando de borrar automaticamente datos de una base de mensajes ( el nombre de la tabla es mensajes y el ...
  #1 (permalink)  
Antiguo 21/05/2011, 14:14
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 1 mes
Puntos: 3
Clausula DELETE con mysql

Hola....les dejo una consulta....

Estoy tratando de borrar automaticamente datos de una base de mensajes ( el nombre de la tabla es mensajes y el campo mensaje) cuyo campo mensaje lo borra el usuario, usando el siguiente codigo php

$con=mysql_connect("localhost","root","clave");

if( !$con ) {
die( "ERROR. " . mysql_error() );
}

mysql_select_db("base_datos",$con);
mysql_query("DELETE mensaje FROM mensajes WHERE usuario='$usuario' AND clave='$pass' AND mensaje='$mensaje' ",$con);
$myerror=mysql_error($con);
if(!empty($myerror)){
echo"Error al borrar los datos"."<br>\n";
}
else {
echo"Datos borrados";
}
mysql_close( $con );

pero siempre muestra el cartel "Error al borrar los datos".

Al intentar realizar lo mismo por consola, no hay problemas...a que puede deberse?

Gracias por su tiempo.
  #2 (permalink)  
Antiguo 21/05/2011, 14:20
 
Fecha de Ingreso: mayo-2011
Ubicación: Guadalupe, N.L, México
Mensajes: 45
Antigüedad: 12 años, 10 meses
Puntos: 6
Respuesta: Clausula DELETE con mysql

Intenta saber de que es el error con esta consulta...
Código PHP:
Ver original
  1. $con=mysql_connect("localhost","root","clave");
  2.  
  3. if( !$con ) {
  4. die( "ERROR. " . mysql_error() );
  5. }
  6.  
  7. mysql_select_db("base_datos",$con);
  8. mysql_query("DELETE mensaje FROM mensajes WHERE usuario='$usuario' AND clave='$pass' AND mensaje='$mensaje' ",$con)or die("Los datos no se borraron a causa de: ".mysql_error($con));
  9. mysql_close( $con );
Con esto te debe decir el porque hay un error...
espero que sirva
  #3 (permalink)  
Antiguo 21/05/2011, 14:25
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 14 años, 11 meses
Puntos: 27
Respuesta: Clausula DELETE con mysql

cambia if(!empty($myerror)){

por

if(!isset($myerror)){
  #4 (permalink)  
Antiguo 21/05/2011, 14:58
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Clausula DELETE con mysql

Me sirvió cambiar por if(!isset($myerror)) {......
ya que cambió el cartel por el de "Datos borrados", pero los datos siguen en la tabla...ya que al realizar la consulta por consola me arroja el contenido de la tabla y es el mismo que antes de intentar borrarlos....

Gracias igual...estoy intentando solucionar.
  #5 (permalink)  
Antiguo 21/05/2011, 21:13
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 7 meses
Puntos: 105
Respuesta: Clausula DELETE con mysql

Holas,

Creo que tu script seria mejor asi:

Código PHP:
Ver original
  1. <?php
  2. ...
  3. $r = mysql_query("DELETE mensaje FROM mensajes WHERE usuario='$usuario' AND clave='$pass' AND mensaje='$mensaje' ",$con);
  4.     echo"Datos borrados";
  5. else
  6. {   echo "Error al borrar los datos: ".mysql_error($con);
  7. }
  8. ...
  9. ?>


Saludos
Gildus
__________________
.: Gildus :.
  #6 (permalink)  
Antiguo 22/05/2011, 09:17
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Clausula DELETE con mysql

Hola...disculpen por insistir con este tema ....tome lo que me aconsejaron y el error que obtengo ahora es el siguiente

Unknown table 'mensajes' in MULTI DELETE

donde el codigo usado es el siguiente

...
...
...
...
mysql_query("DELETE FROM mensajes USING mensaje WHERE usuario='$usuario' AND clave='$clave' AND mensaje='$mensaje' ",$con);
$myerror=mysql_error($con);
if(isset($myerror)) {
echo $myerror;
}
else {
echo"Datos borrados";
}

mysql_close( $con );

pero la tabla mensajes existe..en fin espero puedan darme una mano....Gracias.
  #7 (permalink)  
Antiguo 22/05/2011, 10:45
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 7 meses
Puntos: 105
Respuesta: Clausula DELETE con mysql

Alli tienes dos tablas con estos nombres?

DELETE FROM mensajes USING mensaje WHERE ...

Son dos tablas o solo una?

Saludos
Gildus
__________________
.: Gildus :.
  #8 (permalink)  
Antiguo 22/05/2011, 14:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Clausula DELETE con mysql

Hola...es solo una tabla que se llama mensajes y contiene un campo que se llama mensaje....Gracias.
  #9 (permalink)  
Antiguo 22/05/2011, 15:09
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 7 meses
Puntos: 105
Respuesta: Clausula DELETE con mysql

Si vas ha usar esta sintaxis:

DELETE FROM mensajes USING mensaje WHERE....

Y como mencionas que mensaje no es una tabla sino un campo de la tabla mensajes, entonces estaria mal, ya que la sintaxis es solo para borrar en varias tablas.

Lo correcto que seria usar seria:

Cita:
DELETE FROM mensajes WHERE usuario='$usuario' AND clave='$clave' AND mensaje='$mensaje'
Saludos
Gildus
__________________
.: Gildus :.
  #10 (permalink)  
Antiguo 23/05/2011, 08:17
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Clausula DELETE con mysql (slucionado)

Si..efectivamente...es como vos decís Gildus.....el problema era mío.

Gracias por todo.

Etiquetas: clausula, delete, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:14.