Foros del Web » Programando para Internet » PHP »

donde poner unlink para eliminar ficheros

Estas en el tema de donde poner unlink para eliminar ficheros en el foro de PHP en Foros del Web. Hola a todos vereis tengo que eliminar unos archivos de la BD con esto: $dbh=mysql_connect ("ip", "user"pass") or die ('I cannot connect to the database ...
  #1 (permalink)  
Antiguo 19/11/2006, 05:13
Avatar de HAL9000v.22  
Fecha de Ingreso: noviembre-2006
Mensajes: 8
Antigüedad: 17 años, 5 meses
Puntos: 0
Sonrisa donde poner unlink para eliminar ficheros

Hola a todos vereis tengo que eliminar unos archivos de la BD
con esto:
$dbh=mysql_connect ("ip", "user"pass") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("BD");
$id=$_GET['id'];
$sql = 'DELETE FROM colaboradores WHERE id_imagen='.$id;
mysql_query($sql);

pero se borra el nombre del campo(el que indica la ruta)pero necesito que se borre fisicamente el fichero completo en la carpeta del servidor:
¿donde debo utilizar unlink?¿ seguidamente despues de delete?
unlink(../publicidad/'.$row["imagen"].')

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 19/11/2006, 06:32
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
mmm acuerdate que puedes borrar el fichero siempre y cuando los permisos esten seteados por el mismo usuario que controla php.

Saludos puedes usar delete ó unlink como gustes lógicamente mientras este tu sentencia de mysql activa todo irá bien.

Saludos
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 19/11/2006, 06:54
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Ademas de lo anterior, primero deberias hacer una consulta para conseguir el valor del campo imagen, y despues, una vez lo tienes borras, en el orden que quieras, ya que si haces tal cual tienes despues no podrias borra la imagen, pues el sistema no tendria copmo saber cual fue, no se si me explique, seria algo asi:

Código PHP:
mysql_error());
mysql_select_db ("BD");
$id=$_GET['id'];
$sql1'SELECT imagen FROM colaboradores WHERE id_imagen='.$id;
res=mysql_query($sql1);
$row=mysql_fetch_array($res);
$imagen=$row["imagen"];
$sql 'DELETE FROM colaboradores WHERE id_imagen='.$id;
mysql_query($sql);
unlink("../publicidad/".$imagen); 
No se si esta bien la sentencia ues la hice a correr, pero bueno ese es el sistema.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #4 (permalink)  
Antiguo 19/11/2006, 07:06
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Yo creo que el problema no es la consulta el dice tenerla bien... el tiene problemas para eliminar el archivo y puede ser por los permisos, nada que ver mysql o error de php llamesé sentencia.

Saludos
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 19/11/2006, 07:16
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Urgido, segun entiendo no dice tener problemas para borrar, sino que no sabe donde poner el unlink, que con la consulta solo le borra la fila de la BBDD, entonces lo que debe hacer es primero guardar el nombre del archivo y despues eliminar todo, la fila de la BBDD y el archivo del directorio(en el orden que quiera), despues si resulta que no le borra, es entonces cuando deberia de revisar lo de los permisos, tal y como tu indicas .

Pero bueno, eso es el quien lo sabe.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #6 (permalink)  
Antiguo 20/11/2006, 13:18
Avatar de HAL9000v.22  
Fecha de Ingreso: noviembre-2006
Mensajes: 8
Antigüedad: 17 años, 5 meses
Puntos: 0
Gracias por contestarme tan rápido.
Los registros si que se borran ,pero necesito eliminar tambien el archivo de la carpeta (con permiso777)por lo que tenia la duda de si con delete tambien podía hacerlo o utilizando unlink.
Voy a probar lo que habeis comentado

muchas gracias de nuevo
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 23:40.