Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/05/2010, 01:24
Avatar de estibaliz2006
estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Ayuda para eliminar imágenes del servidor

Hola a todos/as. me estoy volviendo loca. os cuento:

tengo dos tablas relacionadas entre sí: en una meto los datos de una noticia y en otra meto todas las imágenes que esa noticia lleva.

tabla noticias:

idnoticia -- autonumérico identificador de la noticia
noticia-- texto en sí

(Supongamos estos dos campos únicamente para simplificar)

tabla imagenes:

idimagen -- autonumérico identificador de cada imagen
idnoticiapk -- es el que relaciona esta tabla con la anterior. es el idnoticia de la noticia correspondiente.
imagen -- ruta en el servidor de la imagen
imagenth -- ruta en el servidor del thumbail de la imagen

bien. ahora supongamos que lo que deseo es eliminar una noticia. pues la lógica es:
1) identificar el idnoticia de la noticia que quiero eliminar
2) una vez que tengo ese idnoticia, irme a la tabla 'imagenes' y sacar las imágenes asociadas a esa noticia, sacar sus rutas.
3) obtenidas sus rutas, eliminar esas imágenes a través de unlink del servidor.
4) eliminadas las imágenes del servidor, entonces eliminar tanto las imágenes de la tabla 'imagenes' de la base de datos y posteriormente, eliminar la noticia de la tabla 'noticias'.

todo esto traducido a código es esto:

Código PHP:
//elimino las imágenes asociadas a esa noticia en el servidor
$sql="SELECT imagen,imagenth FROM imagenes WHERE idnoticiapk ='".$id."'";
    
$resultadoel=mysql_query($sql) or die (mysql_error()); 
    
$imagen=mysql_result($resultadoel,0,"imagen");
    
$imagenth=mysql_result($resultadoel,0,"imagenth");
    
unlink("$imagen");
    
unlink("$imagenth"); 
/////////
//eliminadas las imágenes, elimino los registros que tenían en la base de datos
//de la tabla 'imagenes'
    
mysql_query("DELETE FROM imagenes WHERE idnoticiapk ='$id");
//////////
//por último, elimino la noticia de la tabla 'noticias'
    
mysql_query("DELETE FROM noticias WHERE idnoticia ='$id"); 
bien. cuál es el problema? pues que hace todo correctamente pero si la noticia tiene asociada más de una imágen, del servidor sólamente elimina la primera, las otras que haya asociadas a esa noticia ahí las queda.

qué he de hacer para que me elimine todas las imágenes asociadas a esa noticia del servidor?

un beso,
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen