Foros del Web » Programando para Internet » PHP »

Eliminar una imagen que no tiene relacion con otra tabla

Estas en el tema de Eliminar una imagen que no tiene relacion con otra tabla en el foro de PHP en Foros del Web. hola , tengo el siguiente codigo Código PHP: <?php $carporig  =  "../../" ; include ( $carporig . "permiso.php" ); include ( $carporig . "config.php" ); ?> <html> ...
  #1 (permalink)  
Antiguo 24/07/2006, 14:18
 
Fecha de Ingreso: julio-2006
Mensajes: 70
Antigüedad: 17 años, 9 meses
Puntos: 0
Eliminar una imagen que no tiene relacion con otra tabla

hola , tengo el siguiente codigo
Código PHP:
<?php
$carporig 
"../../";
include (
$carporig."permiso.php");
include (
$carporig."config.php");
?>
<html>
<head>
<title>Borrando...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<?
function consultaImagen($cod_imagen,$tabla,$dbi,$base){
    
$consul "select * from ".$tabla." where cod_imagen = '$cod_imagen'";
    
$res=mysql_db_query($base,$consul,$dbi);
    
     if(!
$res)
        return 
0;
    else
        return 
1;
        
}


function 
borrarImagen($cod_imagen,$tabla,$dbi,$base){
    
$consul "delete from ".$tabla." where cod_imagen = '$cod_imagen'";
    
$imagen=mysql_db_query($base,$consul,$dbi);
}
function 
obtenerImagen($cod_imagen,$dbi,$base){
    
$consul "select imagen from imagen where cod_imagen='$cod_imagen'";
    
$consultamysql_db_query($base,$consul,$dbi);
    
$row mysql_fetch_array($consulta);
    
$imagen=$row['imagen'];
    return(
$imagen);
}
$cod_imagen=$_GET['codigo'];
$pag=$_GET['pagina'];
$nombre_cat=$_GET['nombre_cat'];
$dbi mysql_connect('localhost',$cuenta,$pass);
$imagen=obtenerImagen($cod_imagen,$dbi,$base);
borrarImagen($cod_imagen,"imagen_categoria",$dbi,$base);
borrarImagen($cod_imagen,"imagen",$dbi,$base);
$ruta="../../imagenes/".$imagen;
$ruta2="../../chicas/".$imagen;

if(
file_exists($ruta)&&file_exists($ruta2)){
unlink($ruta);
unlink($ruta2);
$mensaje="Se ha eliminado la imagen exitosamente.";
}
else
    
$mensaje="El archivo no existe.";

mysql_close($dbi);
print
"<script language=\"javascript\">
     location.href(\"ver_imagen.php?pagina=$pag&nombre_cat=$nombre_cat&accion=1&mensaje=$mensaje\");
</script>"
;
?>
</body>
</html>
este codigo me funciona perfecto al momento de eliminar una imagen , ahora quiero saber como lo puedo hacer para que antes de que elimine la imagen consultar la la base de datos si esta imagen(su codigo) ya pertenece a otra tabla y si es asi , no sea posible eliminar la imagen.

Ojala me ayuden gracias
  #2 (permalink)  
Antiguo 24/07/2006, 18:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Quedaría más claro tu pregunta y posible solución si indicases el código de la estructura de las tablas de tu BBDD implicadas (más que del código "PHP" donde hay que deducir viendo el SQL que empleas justamente eso: la estructura de las tablas).

De todas formas se trata de que hagas tu consulta SQL a tu tabla implicada o las que corresponda y "cuentes" los resultados que obtienes .. si es > 0 ya sabes que existe y por ende ahí actuaras como corresponda:

Código PHP:
function ChequeExistenciaImagen($cod_imagen,$dbi,$base){ 
    
$consul "select COUNT(*) from imagen where cod_imagen='$cod_imagen'"
    
$consultamysql_db_query($base,$consul,$dbi); 
    
$total mysql_result($consulta,0);
    if (
$total 0){
       return 
false;
    } else {
       return 
true;
    }
    

PD: no sé por qué insistes que no tienen relación tus tablas, la tienen .. es tu "cod_imagen" .. aunque no sea una "clave foránea" fozado en SQL con su "integridad referencial" .. La relación la "atas" con código PHP y SQL.


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 31/07/2006, 07:58
 
Fecha de Ingreso: julio-2006
Mensajes: 70
Antigüedad: 17 años, 9 meses
Puntos: 0
Cita:
Iniciado por Cluster
Código PHP:
function ChequeExistenciaImagen($cod_imagen,$dbi,$base){ 
    
$consul "select COUNT(*) from imagen where cod_imagen='$cod_imagen'"
    
$consultamysql_db_query($base,$consul,$dbi); 
    
$total mysql_result($consulta,0);
    if (
$total 0){
       return 
false;
    } else {
       return 
true;
    }
    

Cluster

ya modifique las funciones con el codigo que me enviaste ahora deberia devolverme true ó false , , ahora debo verificar en la funcion borrarImagen :

Código PHP:
function borrarImagen($cod_imagen,$tabla,$dbi,$base){
    if(
buscarImagen_TextoImagen($cod_imagen,$dbi,$base)=true or buscarImagen_ItemImagen($cod_imagen,$dbi,$base)=true or buscarImagen_PretextoImagen($cod_imagen,$dbi,$base)=true ) {
$consul "delete from ".$tabla." where cod_imagen = '$cod_imagen'";
    
$imagen=mysql_db_query($base,$consul,$dbi);}
else
{
$mensaje="La imagen esta en uso , imposible eliminar.";

    
    } 
esta bien asi o debo hacer una funcion por consulta??
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 00:14.