Foros del Web » Programando para Internet » PHP »

eliminando imagenes del servidor

Estas en el tema de eliminando imagenes del servidor en el foro de PHP en Foros del Web. Hola, estoy subiendo y eliminando imagenes por medio de php y estoy parado en el eliminar, ya que se trata de eliminar multiples imagenes cuyo ...
  #1 (permalink)  
Antiguo 25/12/2012, 22:57
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
eliminando imagenes del servidor

Hola, estoy subiendo y eliminando imagenes por medio de php y estoy parado en el eliminar, ya que se trata de eliminar multiples imagenes cuyo nombre se encuentran en una tabla imagenes asi:

Código:
codigo          foto
    1        imagen1.jpg
    2        imagen2.jpg
    3        imagen3.jpg

estoy tratando de hacer algo asi..... codigo se pone para asociarla a un producto..

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM imagenes WHERE codigo = $codigo", $link) or die(mysql_error());
  2.    
  3.     if($row = mysql_fetch_array($sql)>0){
  4.    
  5.         $query="DELETE FROM imagenes WHERE codigo='".$codigo."'";
  6.         $result=mysql_query($query,$link) or die("Error: ".mysql_error());
  7.        
  8.         $foto = $row['foto'];
  9.         $directorio = 'sss/';
  10.         unlink($directorio.$foto);
  11.     }

se eliminan los registros y no las fotos... creo que primero debería eliminar las imagenes del servidor y luego los registros de mysql para que se sepa que imagenes eliminar... pero no he ogrado concluirlo... por eso les pidos u ayuda...

para subir las imagenes utilizo foreach pero en este caso no se si corresponda.
  #2 (permalink)  
Antiguo 25/12/2012, 23:44
Avatar de ilen  
Fecha de Ingreso: febrero-2009
Mensajes: 125
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: eliminando imagenes del servidor

Para eliminar una foto del servidor tienes que enviarle la ruta completa de donde estan, es decir desde la raiz mas o menos como /home/tupagina/fotos/ esta ruta lo capturas con la variable global $_SERVER["DOCUMENT_ROOT"] y luego de eso le concatenas la carpeta donde estan tus fotos + el nombre del archivo que lo sacas de la base de datos, entonces quedaría así.


Código PHP:
Ver original
  1. $directorio =$_SERVER["DOCUMENT_ROOT"]."carpeta_de_fotos/";
  2. unlink($directorio.$foto);

Última edición por ilen; 25/12/2012 a las 23:52
  #3 (permalink)  
Antiguo 26/12/2012, 00:09
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: eliminando imagenes del servidor

estimado, eso ya lo hice

$foto = $row['foto'];
$directorio = 'sss/';
unlink($directorio.$foto);

lo que no puedo hacer es eliminar varias (2, 3, 5, 10, etc) que contengan un codigo, por ejemplo:

codigo foto
1 imagen1.jpg
2 imagen2.jpg
3 imagen3.jpg
2 imagen4.jpg
2 imagen5.jpg

todas las que tengan codigo 2 deberían eliminarse..

saludos.

Última edición por neveuster; 26/12/2012 a las 00:16
  #4 (permalink)  
Antiguo 26/12/2012, 00:24
Avatar de ilen  
Fecha de Ingreso: febrero-2009
Mensajes: 125
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: eliminando imagenes del servidor

Cita:
Iniciado por neveuster Ver Mensaje
estimado, eso ya lo hice, lo que no puedo hacer es eliminar varias (2, 3, 5, 10, etc) que contengan un codigo, por ejemplo:

codigo foto
1 imagen1.jpg
2 imagen2.jpg
3 imagen3.jpg
2 imagen4.jpg
2 imagen5.jpg

todas las que tengan codigo 2 deberían eliminarse..

saludos.
Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM imagenes WHERE codigo = $codigo", $link) or die(mysql_error());
  2.     if($sql){ // si hay fotos entonces elimino logicamente
  3.        $query="DELETE FROM imagenes WHERE codigo='".$codigo."'";
  4.        $result=mysql_query($query,$link) or die("Error: ".mysql_error());
  5.     }
  6.     if($result && $sql){ // se pregunta si hay fotos de ese codigo y si es que la elimino logicamente de manera correcta
  7.       // if($row = mysql_fetch_array($sql)>0){ esta linea solo esta preguntando si esque hay registros pero no efectua el bucle de recorrer todas las fotos
  8.       while ($row = mysql_fetch_array($sql, $link)) { // aqui si recorres foto por foto del codigo 2 para ser eliminadas  
  9.        
  10.           $foto = $row['foto'];
  11.           $directorio =$_SERVER["DOCUMENT_ROOT"]."carpeta_de_fotos/";
  12.           unlink($directorio.$foto);
  13.       }
  14.     }
  #5 (permalink)  
Antiguo 26/12/2012, 01:32
 
Fecha de Ingreso: febrero-2012
Mensajes: 163
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: eliminando imagenes del servidor

Mil gracias ilen... finalmente le saque $_SERVER["DOCUMENT_ROOT"]. y $link del while ya que no me funcionaba...

no podía ver el error ya que una vez que hacia los procesos me enviaba a otra página por header(location... )....

muchas gracias por tu ayuda...

¿¿aprovecho de preguntar.... como se puede premiar o dar puntos o algo a las personas que ayudan a solucionar nuestros problemas?? donde puedo leer de eso??

saludos.

Etiquetas: imagenes, mysql, servidor, sql, tabla
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 09:02.