Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

klbteixeira

[Resolvido] Deletar imagem com PHP

Recommended Posts

usei dentro do laço como você falou mas nada feito ele da erro ainda

 

quero deletar todas os as imagens da pasta fotos cujo nomes das imagens esta armazenadas na tabela fotos com o id do imovel que esta sendo deletado.

 

$info = isset($_GET['numero'])?$_GET['numero']:NULL;  
$sql_seleciona = mysql_query("SELECT * FROM imoveis WHERE id_imoveis='$info'");
$thumb = mysql_fetch_assoc($sql_seleciona);

$sql_delFotos = mysql_query("SELECT * FROM fotos WHERE id_imovel='$info'");
$fotos = mysql_fetch_assoc($sql_delFotos);

foreach($fotos as $foto){

$sql_delete = mysql_query("DELETE FROM imoveis WHERE id_imoveis='$info'");
$deleta_fotos = mysql_query("DELETE FROM fotos WHERE id_imovel='$info'");

$thumbDel = "../fotos/".$thumb['imovelThumb'];
$fotosDel = "../fotos/".$foto['foto'];

unlink($thumbDel);
unlink($fotosDel);

}

 

esse é o codigo que esta dando erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

usei dentro do laço como você falou mas nada feito ele da erro ainda

 

quero deletar todas os as imagens da pasta fotos cujo nomes das imagens esta armazenadas na tabela fotos com o id do imovel que esta sendo deletado.

 

$info = isset($_GET['numero'])?$_GET['numero']:NULL; $sql_seleciona = mysql_query("SELECT * FROM imoveis WHERE id_imoveis='$info'"); $thumb = mysql_fetch_assoc($sql_seleciona); $sql_delFotos = mysql_query("SELECT * FROM fotos WHERE id_imovel='$info'"); $fotos = mysql_fetch_assoc($sql_delFotos); foreach($fotos as $foto){ $sql_delete = mysql_query("DELETE FROM imoveis WHERE id_imoveis='$info'"); $deleta_fotos = mysql_query("DELETE FROM fotos WHERE id_imovel='$info'"); $thumbDel = "../fotos/".$thumb['imovelThumb']; $fotosDel = "../fotos/".$foto['foto']; unlink($thumbDel); unlink($fotosDel); } 

 

esse é o codigo que esta dando erro

 

Vou tentar te passar a lógica, você tem um imóvel e várias fotos relacionadas a este imóvel certo, então você deleta o cadastro do imóvel, depois você cria um laço que vai deletar as fotos relacionadas a este imóvel, vou tentar colocar mais ou menos no seu cod abaixo.

$info = isset($_GET['numero'])?$_GET['numero']:NULL; 
$sql_seleciona = mysql_query("SELECT * FROM imoveis WHERE id_imoveis='$info'");
$thumb = mysql_fetch_assoc($sql_seleciona);

$sql_delFotos = mysql_query("SELECT * FROM fotos WHERE id_imovel='$info'");
$fotos = mysql_fetch_assoc($sql_delFotos);

$sql_delete = mysql_query("DELETE FROM imoveis WHERE id_imoveis='$info'");
$deleta_fotos = mysql_query("DELETE FROM fotos WHERE id_imovel='$info'");
$thumbDel = "../fotos/".$thumb['imovelThumb'];

foreach($fotos as $foto){
$fotosDel = "../fotos/".$foto['foto'];
unlink($fotosDel);
}

 

não deixe de conferir se foi excluído ou deu algum erro para confirmar que deu tudo certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o $thumb é a imagem principal que fica na tabela imoveis tipo ele cadastra a imagem principal que fica armazenada na tabela imoveis e depois ele adiciona mais fotos nesse cadastro que pode ser ate 6 imagens diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma olhada melhor no que você postou e entendi, veja se o post que editei vai te servir, vou colocar abaixo:

$info = isset($_GET['numero'])?$_GET['numero']:NULL; 
$sql_seleciona = mysql_query("SELECT * FROM imoveis WHERE id_imoveis='$info'");
$thumb = mysql_fetch_assoc($sql_seleciona);

$sql_delFotos = mysql_query("SELECT * FROM fotos WHERE id_imovel='$info'");
$fotos = mysql_fetch_assoc($sql_delFotos);

$sql_delete = mysql_query("DELETE FROM imoveis WHERE id_imoveis='$info'");
$deleta_fotos = mysql_query("DELETE FROM fotos WHERE id_imovel='$info'");
$thumbDel = "../fotos/".$thumb['imovelThumb'];

foreach($fotos as $foto){
$fotosDel = "../fotos/".$foto['foto'];
unlink($fotosDel);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou postar a estrutura do meu banco de dados pra ficar mais fazil o entendimento.

 

-- Banco de Dados `imoveis_luizinho`

--

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `fotos`

--

 

CREATE TABLE IF NOT EXISTS `fotos` (

`id_foto` int(12) NOT NULL AUTO_INCREMENT,

`foto` varchar(255) DEFAULT NULL,

`legenda` varchar(255) DEFAULT NULL,

`id_imovel` int(12) DEFAULT NULL,

PRIMARY KEY (`id_foto`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

 

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `imoveis`

--

 

CREATE TABLE IF NOT EXISTS `imoveis` (

`id_imoveis` int(12) NOT NULL AUTO_INCREMENT,

`endereco` varchar(120) DEFAULT NULL,

`numero` varchar(12) DEFAULT NULL,

`cidade` varchar(25) DEFAULT NULL,

`estado` varchar(12) DEFAULT NULL,

`categoria` varchar(12) DEFAULT NULL,

`tipo` varchar(255) DEFAULT NULL,

`descricao` varchar(120) DEFAULT NULL,

`imovelThumb` varchar(255) DEFAULT NULL,

`bairro` varchar(255) DEFAULT NULL,

`complemento` varchar(255) DEFAULT NULL,

`valor` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id_imoveis`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

 

 

-- --------------------------------------------------------

 

 

ai vcs podem ver que a tabela fotos recebe um campo com o id do imovel que vai relacionar as fotos do imove, mas quando tento excluir as imagens da pasta que estao armazenadas so exclui 1 imagem que esta relacionada ao imovel que esta sendo excluida e as outras imagens são do mesmo imovel ficam dentro da pasta e não sao excluidas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim isso mesmo

 

$info = isset($_GET['numero'])?$_GET['numero']:NULL;  

$sql_seleciona = mysql_query("SELECT * FROM imoveis WHERE id_imoveis='$info'");
$thumb = mysql_fetch_assoc($sql_seleciona);

$sql_delFotos = mysql_query("SELECT * FROM fotos WHERE id_imovel='$info'");
$fotos = mysql_fetch_array($sql_delFotos);

$sql_delete = mysql_query("DELETE FROM imoveis WHERE id_imoveis='$info'");
$deleta_fotos = mysql_query("DELETE FROM fotos WHERE id_imovel='$info'");

$thumbDel = "../fotos/".$thumb['imovelThumb'];
$fotosDel = "../fotos/".$fotos['foto'];

unlink($thumbDel);
unlink($fotosDel);

com esse codigo ai eu consigo deletar a imagem da tabela imoveis e da pasta mas da tabela fotos eu consigo deletar todos os registros do banco de dados mas apenas 1 imagem da pasta. eu gostaria de deletar todas as imagens da tabela fotos relacionadas ao imovel que estou excluindo deu pra entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

$info = isset($_GET['numero'])?$_GET['numero']:NULL; 
$sql_seleciona = mysql_query("SELECT * FROM imoveis WHERE id_imoveis='$info'");
$thumb = mysql_fetch_assoc($sql_seleciona);

$sql_delFotos = mysql_query("SELECT * FROM fotos WHERE id_imovel='$info'");
$fotos = mysql_fetch_assoc($sql_delFotos);

$sql_delete = mysql_query("DELETE FROM imoveis WHERE id_imoveis='$info'");
$deleta_fotos = mysql_query("DELETE FROM fotos WHERE id_imovel='$info'");
$thumbDel = "../fotos/".$thumb['imovelThumb'];

foreach($fotos as $foto){
$fotosDel = "../fotos/".$foto;
unlink($fotosDel);

 

Tenta aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hcar ja tentei esse codigo mas ele da erro

Warning: unlink(../fotos/5) [function.unlink]: No such file or directory in /home/netcomun/public_html/imoveisluizinho/admin/posexclui_imoveis.php on line 41

 

Warning: unlink(../fotos/i) [function.unlink]: No such file or directory in /home/netcomun/public_html/imoveisluizinho/admin/posexclui_imoveis.php on line 41

 

Warning: unlink(../fotos/) [function.unlink]: Is a directory in /home/netcomun/public_html/imoveisluizinho/admin/posexclui_imoveis.php on line 41

 

Warning: unlink(../fotos/2) [function.unlink]: No such file or directory in /home/netcomun/public_html/imoveisluizinho/admin/posexclui_imoveis.php on line 41

Compartilhar este post


Link para o post
Compartilhar em outros sites

hcar ja tentei esse codigo mas ele da erro

Warning: unlink(../fotos/5) [function.unlink]: No such file or directory in /home/netcomun/public_html/imoveisluizinho/admin/posexclui_imoveis.php on line 41

 

Warning: unlink(../fotos/i) [function.unlink]: No such file or directory in /home/netcomun/public_html/imoveisluizinho/admin/posexclui_imoveis.php on line 41

 

Warning: unlink(../fotos/) [function.unlink]: Is a directory in /home/netcomun/public_html/imoveisluizinho/admin/posexclui_imoveis.php on line 41

 

Warning: unlink(../fotos/2) [function.unlink]: No such file or directory in /home/netcomun/public_html/imoveisluizinho/admin/posexclui_imoveis.php on line 41

 

Ele não está encontrando o arquivo no diretório mensionado, tem de verificar o caminho passa, qual a estrutura de pastas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha!

 

<?
$Imovel_Codigo               = isSet($_GET['numero']) && is_numeric($_GET['numero']) ? $_GET['numero']: 0;

// Identifica o imovel
$SQL                         = 'SELECT * FROM imoveis WHERE id_imoveis = '.$Imovel_Codigo;
$Consulta_Imovel             = mysql_query($SQL) OR Die ('Erro '.mysql_errno().'<br>'.mysql_error().'<br>na busca do imóvel');

If (mysql_num_rows($Consulta_Imovel))
  { $Imovel                 = mysql_fetch_array($Consulta_Imovel);

    // Coleta as fotos
    $SQL                    = 'SELECT id_foto, foto FROM fotos WHERE id_imovel = '.$Imovel_Codigo; // busca todas as fotos
    $Consulta_Fotos         = mysql_query($SQL) OR Die ('Erro '.mysql_errno().'<br>'.mysql_error().'<br>na busca de fotos');

    If (mysql_num_rows($Consulta_Fotos))
       { // Pasta raiz das fotos
         $Pasta             = '../fotos';

         // Rotina de exclusao
         While ($Foto_Atual = mysql_fetch_assoc($Consulta_Fotos))
               {
                 // Deleta foto por foto do db
                 $SQL       = 'DELETE FROM fotos WHERE id_foto = '.$Foto_Atual['id_foto'];
                              mysql_query($SQL);

                 // Deleta arquivo por arquivo de foto
                 $Arquivo_URL         = $Pasta.'/'.$Foto_Atual['foto'];
                                        @unlink($Arquivo_URL);
               }
       }
    Else { Exit('Não há fotos para o imóvel '.$Imovel_Codigo); }

  } // Imovel nao localizado
Else { Exit('Imóvel '.$Imovel_Codigo.' não existe'); }
?>

 

Contudo, o erro de apagar a foto vai persistir se o caminho estiver incorreto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o diretorio sim eu sei que esse erro é pq ele não encontrou o diretorio, mas o caminho é esse mesmo a pasta esta em um nivel acima

 

vou testar

 

esse codigo deu certo porem não excluiu o registro do imovel nem a imagem principal do imovel.

 

mas excluiu todas as fotos da tabela fotos que la que eu estava com dificuldades

Compartilhar este post


Link para o post
Compartilhar em outros sites

o diretorio sim eu sei que esse erro é pq ele não encontrou o diretorio, mas o caminho é esse mesmo a pasta esta em um nivel acima

 

vou testar

 

esse codigo deu certo porem não excluiu o registro do imovel nem a imagem principal do imovel.

 

Você diz um nível acima, mas como está, está no mesmo nível, verifique melhor

Compartilhar este post


Link para o post
Compartilhar em outros sites

o diretorio sim eu sei que esse erro é pq ele não encontrou o diretorio, mas o caminho é esse mesmo a pasta esta em um nivel acima

 

vou testar

 

esse codigo deu certo porem não excluiu o registro do imovel nem a imagem principal do imovel.

 

mas excluiu todas as fotos da tabela fotos que la que eu estava com dificuldades

 

 

Legal! Já sei o que foi, esqueci de apagar o thumb :D

Pera!

 

E agora?

 

<?
$Imovel_Codigo               = isSet($_GET['numero']) && is_numeric($_GET['numero']) ? $_GET['numero']: 0;

// Identifica o imovel
$SQL                         = 'SELECT * FROM imoveis WHERE id_imoveis = '.$Imovel_Codigo;
$Consulta_Imovel             = mysql_query($SQL) OR Die ('Erro '.mysql_errno().'<br>'.mysql_error().'<br>na busca do imóvel');

If (mysql_num_rows($Consulta_Imovel))
  { $Imovel                 = mysql_fetch_array($Consulta_Imovel);

    // Coleta as fotos
    $SQL                    = 'SELECT id_foto, foto FROM fotos WHERE id_imovel = '.$Imovel_Codigo; // busca todas as fotos
    $Consulta_Fotos         = mysql_query($SQL) OR Die ('Erro '.mysql_errno().'<br>'.mysql_error().'<br>na busca de fotos');

    // Deletas as fotos
    If (mysql_num_rows($Consulta_Fotos))
       { // Pasta raiz das fotos
         $Pasta             = '../fotos';

         // Rotina de exclusao
         While ($Foto_Atual = mysql_fetch_assoc($Consulta_Fotos))
               {
                 // Deleta foto por foto do db
                 $SQL       = 'DELETE FROM fotos WHERE id_foto = '.$Foto_Atual['id_foto'];
                              mysql_query($SQL);

                 // Deleta arquivo por arquivo de foto
                 $Arquivo_URL         = $Pasta.'/'.$Foto_Atual['foto'];
                                        @unlink($Arquivo_URL);
               }
       }
    Else { Echo('Não há fotos para o imóvel '.$Imovel_Codigo); }

    // Deleta o imovel e o thumb
    $Arquivo_URL            = $Pasta.'/'.$Imovel['imovelThumb'];
    $SQL                    = 'DELETE FROM imoveis WHERE id_imoveis = '.$Imovel_Codigo;
                              mysql_query($SQL);
                              // Deleta o thumb
                              @unlink($Arquivo_URL);

  } // Imovel nao localizado
Else { Exit('Imóvel '.$Imovel_Codigo.' não existe'); }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara perfeito muito bom td certinho sem erros e exclui td.

muito obrigado nem sei como agradecer cara ja tava me vendo louco pra resolver isso só faltava isso pra fechar o projeto.

VLW MESMO você é muito fera.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara perfeito muito bom td certinho sem erros e exclui td.

muito obrigado nem sei como agradecer cara ja tava me vendo louco pra resolver isso só faltava isso pra fechar o projeto.

VLW MESMO você é muito fera.....

 

 

FLW! Abraço! Precisando, estamos aqui pra ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.