Foros del Web » Programando para Internet » PHP »

No me elimina la imagen del Servidor

Estas en el tema de No me elimina la imagen del Servidor en el foro de PHP en Foros del Web. Hola a todos/as. Tengo dos tablas: Tabla Categoria: idcategoria--------Autonumérico nombrecat--------Nombre de la Categoría Tabla Productos: idproducto--------Autonumérico nombre--------Nombre del producto imagen--------Ruta del directorio donde se guarda ...
  #1 (permalink)  
Antiguo 04/09/2008, 09:21
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
No me elimina la imagen del Servidor

Hola a todos/as. Tengo dos tablas:

Tabla Categoria:
idcategoria--------Autonumérico
nombrecat--------Nombre de la Categoría


Tabla Productos:
idproducto--------Autonumérico
nombre--------Nombre del producto
imagen--------Ruta del directorio donde se guarda el producto(ejemplo: productos/boligrafo.jpg)
categoriaid--------Categoria a la que pertenece el producto


Como podréis observar en la tabla 'productos' sólo guardo la ruta de las imágenes que a su vez se guardan estas imágenes en el directorio 'productos' del servidor.

bien. yo lo que quiero ahora es que al eliminar una categoría se elimine no solo la categoría y los productos asociados a ella si no que además se eliminen las imágenes de esos productos del servidor.

lo hago (o trato de hacer con UNLINK) así tengo:

////rescato el id de la categoria a eliminar y ahora elimino
$id = $_GET ['id'];

mysql_query("DELETE FROM categorias WHERE idcategoria='$id'");
Con lo anterior, queda eliminada la categoría. Ahora voy a eliminar los productos asociados a esa categoría y además la imagen en el servidor.


$sql="SELECT imagen FROM productos WHERE categoriaid='".$id."'";
$resultado=mysql_query($sql) or die (mysql_error());
$imagen=mysql_result($resultado,0,"imagen");
Con lo anterior lo que trato de obtener es la variable $imagen, que va a recoger la ruta del producto en el servidor. Una vez obtenida, la borro a través de unlink
unlink($imagen);

borrada la imagen del servidor, borro el registro en la tabla productos:
mysql_query("DELETE FROM productos where categoriaid='$id'") or die(mysql_error());
header("Location: exito.php");

///////////////////////////////////////////////////////

Bien. pues lo hace todo excepto eliminar la imagen del servidor mediante unlink. sabéis por qué? gracias a todos/as
  #2 (permalink)  
Antiguo 04/09/2008, 09:55
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: No me elimina la imagen del Servidor

Que tal estibaliz2006, pues en teoría debería eliminar el archivo de imagen, prueba hacer un:
Código PHP:
// Verifica antes de utlizar unlink() que te este devolviendo la ruta correcta a la imagen
echo $imagen


Saludos.
  #3 (permalink)  
Antiguo 04/09/2008, 10:11
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: No me elimina la imagen del Servidor

Cita:
Iniciado por estibaliz2006 Ver Mensaje
$sql="SELECT imagen FROM productos WHERE categoriaid='".$id."'";
$resultado=mysql_query($sql) or die (mysql_error());
$imagen=mysql_result($resultado,0,"imagen");
Con lo anterior lo que trato de obtener es la variable $imagen, que va a recoger la ruta del producto en el servidor. Una vez obtenida, la borro a través de unlink
unlink($imagen);

CON ESTO NO ESTAS ELIMINANDO LA RUTA DE LA IMAGEN...
UNLINK() ES PARA PHP, TU HACES LA CONSULTA, CREO QUE DEBES ELIMINAR EN LA BD....

DELETE FROM PRODUCTOS WHERE categoriaid='".$id."'";
ESO ELIMINARIA TODA LA FILA CON DICHO ID, Y TAMBIEN ELIMINAS EL CAMPO IMAGEN DE DICHO ID,...

OJO EN EL QUERY
$resultado=mysql_query($sql) or die (mysql_error());

SI HACES ESO SIGNIFICA QUE YA DECLARASTE ANTICIPANDAMENTE LA VARIABLE DE CONEXION A MYSQL... SI NO DE SER ASI TIENES QUE COMPLETAR EL QUERY

$resultado=mysql_query($sql,$variable-conexion) or die (mysql_error());
  #4 (permalink)  
Antiguo 04/09/2008, 12:03
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: No me elimina la imagen del Servidor

Hola vidalsoft. a ver: primeramente trato de eliminar la imagen del servidor. para ello muestro este código:

Código PHP:
$sql="SELECT imagen FROM productos WHERE categoriaid='".$id."'";
$resultado=mysql_query($sql) or die (mysql_error());
$imagen=mysql_result($resultado,0,"imagen");
unlink($imagen); 
Eso rescata el valor de la variable $imagen y a través de unlink la elimina del servidor (no de la base de datos). Una vez que está eliminada, elimino el registro en la base de datos a través de:

Código PHP:
mysql_query("DELETE FROM productos where categoriaid='$id'") or die(mysql_error()); 
header("Location: exito.php"); 
creo que la lógica es esa. el problema es que elimina todo menos el archivo de la imagen en el servidor, cosa que debería hacerse a través de unlink
  #5 (permalink)  
Antiguo 05/09/2008, 00:55
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: No me elimina la imagen del Servidor

alguna ayuda?
  #6 (permalink)  
Antiguo 20/10/2008, 14:27
 
Fecha de Ingreso: julio-2008
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: No me elimina la imagen del Servidor

Te has fijado en que carpeta estan las imagenes a eliminar o si estas en el mismo lugar que las imagenes, por ejemplo si tus imagenes estan en una carpeta imagen:

unlink("imagen/".$imagen);
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 19:08.