Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] query para eliminar

Estas en el tema de query para eliminar en el foro de PHP en Foros del Web. Hola! me gustaria que pudieran ayudarme que estoy rompiendome la cabeza, quiero eliminar unos registros de 3 tablas, que estan ligadas entre ellas, la primera ...
  #1 (permalink)  
Antiguo 26/06/2013, 22:07
 
Fecha de Ingreso: abril-2013
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
query para eliminar

Hola! me gustaria que pudieran ayudarme que estoy rompiendome la cabeza, quiero eliminar unos registros de 3 tablas, que estan ligadas entre ellas,
la primera es dispositivos (id_respuesta), falla (id_respuesta, id_tecnico) y estadoDispositivo(id_respuesta, id_estado)

el query que estoy usan es este, pero no funciona:

Código PHP:
"DELETE a,b,c FROM dispositivos AS a JOIN falla as b JOIN estadoDispositivo as c ON a.id_respuesta=b.id_respuesta, a.id_respues=c.id_respuesta
            WHERE a.id_respuesta = '" 
mysql_real_escape_string($id_respuesta) . "'"
  #2 (permalink)  
Antiguo 26/06/2013, 23:39
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: query para eliminar

Ni idea que te arroja SQL porque no lo estas diciendo pero OJO que si estan relacionadas con llaves foraneas vas a tener que borrarlas en un orden especifico
__________________
Salu2!
  #3 (permalink)  
Antiguo 26/06/2013, 23:53
 
Fecha de Ingreso: mayo-2013
Mensajes: 27
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: query para eliminar

NO LO PODRAS HACER ASI DE SIMPLE, YA QUE ESTAN LIGADAS!
lo que yo hice fue borrar tabla por tabla!
y se usa el
Código PHP:
$sql"TRUNCATE TABLE 'nombre de la tabla' ";
if(
mysql_query($sql))
{
 echo 
"BORRO";
}
else
{
 echo 
"NO BORRO";

  #4 (permalink)  
Antiguo 27/06/2013, 08:28
 
Fecha de Ingreso: abril-2013
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: query para eliminar

Cita:
Iniciado por Italico76 Ver Mensaje
Ni idea que te arroja SQL porque no lo estas diciendo pero OJO que si estan relacionadas con llaves foraneas vas a tener que borrarlas en un orden especifico
Este es el error que me arroja el SQL

ya trate de cambiarle los nombre y aun asi marca ese error
  #5 (permalink)  
Antiguo 27/06/2013, 08:34
 
Fecha de Ingreso: abril-2013
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: query para eliminar

Cita:
Iniciado por SeFaS90 Ver Mensaje
NO LO PODRAS HACER ASI DE SIMPLE, YA QUE ESTAN LIGADAS!
lo que yo hice fue borrar tabla por tabla!
y se usa el
Código PHP:
$sql"TRUNCATE TABLE 'nombre de la tabla' ";
if(
mysql_query($sql))
{
 echo 
"BORRO";
}
else
{
 echo 
"NO BORRO";

podría ser, pero ya vi que de las tablas fallas y estadoDispositivo puedo borrar los resgistros, osea desde el phpmyadmin, ayer trate de truncar las tablas para que no tengan registros, pero la tabla de dipositivos no me dejo truncarla, es como dices esta ligada con las otras dos tablas, por lo que ni de esa forma me serviria para eliminar
  #6 (permalink)  
Antiguo 27/06/2013, 08:39
 
Fecha de Ingreso: abril-2013
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: query para eliminar

acabo de leer en un foro que 'para que me permita borrar de dos tablas ligadas, necesito configurar la llave foranea que establece la relación entre las dos tablas para que la regla de actualización me permita borrado en cascada.
Alguien podría decirme como hago eso?
  #7 (permalink)  
Antiguo 28/06/2013, 08:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: query para eliminar

Ojo que lo de permitir el borrado en cascada es peligroso y le quita lo bueno a la integridad referencial segun entiendo.

Yo lo habilitaria solo cuando lo necesito.


http://dev.mysql.com/doc/refman/5.0/...nstraints.html
__________________
Salu2!

Etiquetas: php+, querys
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




La zona horaria es GMT -6. Ahora son las 11:26.