Foros del Web » Programando para Internet » PHP »

bucle para borrar varios registros y archivos

Estas en el tema de bucle para borrar varios registros y archivos en el foro de PHP en Foros del Web. tengo una duda para crear un bucle a partir de una select.. esta select deve seleccionar todos los registros que tienen un campo en comun ...
  #1 (permalink)  
Antiguo 15/01/2004, 12:54
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
bucle para borrar varios registros y archivos

tengo una duda para crear un bucle a partir de una select..
esta select deve seleccionar todos los registros que tienen un campo en comun para ir borrandolos, el problema es que cada uno de estos registros almacena en un campo una ruta a una imagen que se muestra con su registro al hacer el print y al borrar, pretendo borrar el registro mas su imagen osea que, esta accion se tendria que repetir hasta borrar todos los registros y sus imagenes de un directorio.

de esta forma borro todos los registros que tienen un campo en comun:
$deletemysql = sprintf("DELETE FROM tabla WHERE x=$x"),

alguna idea??

muchas gracias de antemano...
  #2 (permalink)  
Antiguo 15/01/2004, 13:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues tienes que hacer un SELECT bajo tu condicional WHERE para obtener ese campo de ese registro que contiene la ruta a tu archivo ..

Cuando tengas ese dato .. usa unlink($ruta) en el mismo bucle.

Código PHP:
// conectas a tu BD .. etc ..
$sql="SELECT * FROM tabla WHERE x='".$x."'";
while (
$registro=mysql_fetch_array($sql)){
//Borrar archivo asociado
unlink($registro['ruta_archivo']);

Y luego tu mysql_query() con el DELETE bajo ese mismo WHERE para borrar esos registros.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 15/01/2004, 15:27
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
me da un error inexplicable

Hola gracias por responder tan rapido....

esto es lo que estoy haciendo :

<?
$sql="SELECT familia, imagen FROM galeriasub WHERE familia='".$id."'";
while ($imagen=mysql_fetch_array($sql)){
//Borrar archivo asociado
unlink($imagen['imagen']);
}
?>

y me da el tipico error:
Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\gallery\panel\untitled-1.php on line 11

no se que estoy haciendo mal ya prove todo lo que conozco y no hay caso
bueno espero que me puedas ayudar.....

muchas gracias
  #4 (permalink)  
Antiguo 15/01/2004, 15:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
// conectas a tu BD .. etc ..
Pero .. estás conectando a tu BD y seleccionando la BD?. Por qué ese código sólo es -orientativo- que me dejé el mysql_query() xDDD (pero igualmente hay que hacer la conexión a tu BD .. y lo demás).
Código PHP:
// conectas a tu BD .. etc ..
$sql="SELECT * FROM tabla WHERE x='".$x."'";
$resultado=mysql_query($sql) or die(mysql_error());
while (
$registro=mysql_fetch_array($resultadol)){
//Borrar archivo asociado
unlink($registro['ruta_archivo']);

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 15/01/2004, 23:56
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
De acuerdo me quito el sombrero

Todo solucionado y gracias a usted!! que es un entendido en la materia....
esto estaba bien :

$sql="SELECT * FROM tabla WHERE x='".$x."'";
$resultado=mysql_query($sql) or die(mysql_error());
while ($registro=mysql_fetch_array($resultadol)){
//Borrar archivo asociado
unlink($registro['ruta_archivo']);
}


estaba cometiendo el error a la hora de seleccionar la BD y es que despues de tantos cambios para ver si funcionaba lo otro cometia este error con algo tan simple...

MIL gracias!!!!!
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 04:00.