Foros del Web » Programando para Internet » PHP »

borrar en cascada (otra vez)

Estas en el tema de borrar en cascada (otra vez) en el foro de PHP en Foros del Web. pretendo borrar las filas nietas de un registro utilizando este código $query = "SELECT num_id FROM participantes AS p, formacion AS t, organizadores AS v ...
  #1 (permalink)  
Antiguo 01/07/2005, 05:42
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
borrar en cascada (otra vez)

pretendo borrar las filas nietas de un registro utilizando este código

$query = "SELECT num_id
FROM participantes AS p, formacion AS t, organizadores AS v
WHERE
p.num_correlativo=t.num_correlativo
AND
t.num_organizador=v.num_organizador
AND
v.num_organizador=31
ORDER BY num_id ASC";

este código me devuelve las filas que yo quiero borrar pero en las filas siguientes es donde está el error, exactamente en la última, me sale un mensaje de error diciendo unexpected t string etc. etc.

$sql1 = mysql_query($query) or die (mysql_error());

while( $fila=mysql_fetch_row($sql1)) {
DELETE FROM participantes WHERE num_id=$fila;}

os agradecería cualquier comentario por breve que fuera.
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
  #2 (permalink)  
Antiguo 01/07/2005, 08:16
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
No se entiende mucho el error que te da, pero del vamos, que es esto?:

"while( $fila=mysql_fetch_row($sql1)) {
DELETE FROM participantes WHERE num_id=$fila;} "

El delete ese suelto te va a producir error, y $fila no se de donde lo estas sacando, pero imagino que te referis al array $filas creado del recordset...leete un poco como usar sql desde php para aclararte estos puntos.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 02/07/2005, 13:48
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
gracias, me ayuda poco tu recomendación de leer acerca de lo que necesito saber, desde hace tiempo ya sabemos todos que todo lo aprendemos leyendo. de todas formas por si alguien está interesado he avanzado algo, muy poco la verdad. he conseguido pintar en la pantalla lo que quiero hacer pero no veo la manera de ordenar el código para que la línea de borrado se ejecute.

$query = "SELECT num_id
FROM participantes AS p, formacion AS t, organizadores AS v
WHERE
p.num_correlativo=t.num_correlativo
AND
t.num_organizador=v.num_organizador
AND
v.num_organizador=31
ORDER BY num_id ASC";

$sql1 = mysql_query($query) or die (mysql_error());


while ($fila = mysql_fetch_array($sql1)){
echo "delete from participantes where num_id=".$fila["num_id"]."</br>";
}
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
  #4 (permalink)  
Antiguo 02/07/2005, 17:57
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 18 años, 11 meses
Puntos: 1
Solamente te faltaria que ejecutes tu sentencia sql de esta manera:

Código PHP:
while ($fila mysql_fetch_array($sql1)){
//creo la sentencia sql
$sql="delete from participantes where num_id=".$fila["num_id"];
//ejecuto la sentencia sql
mysql_query($sql);
//saco en pantalla la sentencia sql
echo "$sql<br />";

espero que te sirva.
  #5 (permalink)  
Antiguo 02/07/2005, 20:51
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Bueno, espero no sonar agresivo, pero realmente no se te tendria que brindar ayuda ya que el error que planteas es porque no lees.

STFW
RTFM

http://ar.php.net/manual/es/function.mysql-query.php

http://www.webestilo.com/php/php07c.phtml

http://www.mysql-hispano.org/
  #6 (permalink)  
Antiguo 04/07/2005, 07:47
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
por fin está resuelto.

contestando a deet:

gracias, había probado varias cosas parecidas pero por lo visto en cada una de ellas fallaba algo distinto.
el código que borra las filas nietas, hijas y padre ha quedado así en la página de respuesta a un formulario que pide la clave primaria del registro de la fila padre que se quiere eliminar en cascada con todos sus descendientes.

// localizamos las filas nietas que queremos eliminar

$query = "SELECT num_id
FROM participantes AS p, formacion AS t, organizadores AS v
WHERE
p.num_correlativo=t.num_correlativo
AND
t.num_organizador=v.num_organizador
AND
v.num_organizador=$num_organizador_e
ORDER BY num_id ASC";

$sql1 = mysql_query($query) or die (mysql_error());

echo "</br></br>El comando SQL se ha ejecutado.</br></br>";

// borrando las filas nietas

while ($fila = mysql_fetch_array($sql1)){
$sql2="delete from participantes where num_id=".$fila["num_id"];
mysql_query($sql2);
echo "$sql2<br />";
}

// borrando las filas hijas

$sql3 = "delete from formacion where num_organizador=$num_organizador_e";
mysql_query($sql3);
echo "$sql3<br />";

// borrando la fila padre

$sql4 = "delete from organizadores where num_organizador=$num_organizador_e";
mysql_query($sql4);
echo "$sql4<br />";

no se debe intentar borrar primero las filas padre y/o las filas hijas. lo he probado varias veces y funciona bien, estoy muy contento con el descubrimiento.

contestando a DarioDario:

¿agresivo? mejor reiterativo, innecesario, algo sectario, excluyente, con un tono admonitorio y paternalista que resulta inaguantable, ya es bastante insoportable la falta de agua, las restricciones de energía eléctrica y la ola de calor que estamos padeciendo. solo empeora las cosas encontrarse con un mesías como tu, alguien que quiere imponer al mundo lo que está bien y lo que está mal. olvídame. gracias.
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
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 20:03.