Ir para conteúdo

POWERED BY:

Arquivado

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

klbteixeira

[Resolvido] Deletar imagem com PHP

Recommended Posts

E aí pessoal beleza, estou com uma duvida que não consigo resolver montei um site bem simples de imobiliaria e falta eu terminar algumas coisinhas nele e uma dessas coizinhas seria a parte de exclusao do imovel, até ai td bem fiz o script todo de exclusao mas o problema é o seguinte eu gravo as imagens das casas em uma pasta no servidor e o caminho no banco de dados, o caminho do banco de dados ele exclui de boa, o que ta pegando é que não sei como fazer pra deletar as imagens da pasta.

 

tenho uma tabela no banco de dados que se chama imoveis la tenho o campo id_imoveis, endereco, etc e nessa tabela gravo uma imagem que sera a imagem principal essa eu consigo pegar o nome dela e deletar de boa, mas so que eu tenho outra tabela com o nome de fotos que o cliente coloca ate 6 fotos do imovel e é relacionado com a chave primaria da tabela imoveis. E com isso não estou sabendo pegar o nome de cada imagem desse determinado id pra eu conseguir deletar da pasta as imagens corretas.

 

é isso ai espero que me ajudem e entendam o que estou querendo.VLW.

 

esse aqui é meu codigo de exclusao.

 

$info = $_GET['numero'];
$pastaDel = '../fotos';

$sql_seleciona = mysql_query("SELECT imageThumb FROM imoveis WHERE id_imoveis='$info'");
$fotos = mysql_fetch_object($sql_seleciona);


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

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

unlink($pastaDel.'/'.$fotos);

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw go_back vo testar aqui e ja dou um retorno....

 

to testando ele num servidor local e ta dando erro

 

 

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\imoveisluizinho\admin\posexclui_imoveis.php on line 19

 

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\imoveisluizinho\admin\posexclui_imoveis.php on line 23

 

Warning: unlink(/) [function.unlink]: Permission denied in C:\wamp\www\imoveisluizinho\admin\posexclui_imoveis.php on line 28

 

como faço pra tirar esse erro??

Compartilhar este post


Link para o post
Compartilhar em outros sites

$info = $_GET['numero'];
$pastaDel = '../fotos';

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


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

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

unlink($pastaDel.'/'.$fotos['imageThumb']);

 

Agora sim..

 

Desculpa aí, postei o código errado acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara fiz coloquei teu codigo no meu script aqui mas ta dando o seguinte erro:

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

 

o que posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele nao achou o diretório cara... tente entender o erro

Traduza, google.com.br/language_tools

 

Verifique se esta é a pasta mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é o caminho correto pois a pasta onde ta as fotos esta em um nivel acima.

 

mas não apaga ja tentei td ja refiz o codigo ja procurei em td quanto é lugar e num achei inda a solução.

to ficando loko ja com isso!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer aqui agora ta apagando tanto o registro no banco quanto a imagem da pasta mas so que na tabela fotos eu tenho ate 6 fotos que pode ser cadastradas por imovel mas na hora de fazer a exclusao ele ta excluindo so uma foto.

 

Vou explicar melhor tenho duas tabelas uma eu gravo os dados do imovel e uma imagem que é a principal do anuncio do imovel e outra tabela eu gravo as outras imagens do imovel que o cara que ta cadastrando pode incluir ate 6 imagens fora a imagem principal consegui fazer a exclusao da imagem principal do banco e da pasta onde fica armazenada mas como faço pra excluir todas as outras imagens do mesmo imovel.

acho que fico mais claro né.

 

$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'];
$fotosDel = "../fotos/".$fotos['foto'];

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente usar um foreach .. pra dar unlink em cada foto que tem referente ao imovel ^_^

 

não testei .. tenta assim

 

$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);

 

seria algo + / - assim ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

você quer excluir todas fotos referente ao imovel que o cara botou ?

 

sim isso mesmo da tabela imovel eu consegui excluir da tabela foto onde esta armazenada mais de uma foto eu consigo excluir so uma foto

na tabela foto tenho os campos id_foto, foto e id_imovel(que relaciona com o imovel cadastrado) entao preciso que exclua as imagens da tabela fotos e da pasta fotos tbm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu o seguinte erro

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

você ta comendo bola fera...

Diretório tá errado ou nao tem permissão pra acessar.

 

PHP nao erra.(só em alguns casos)

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao com o codigo que postei la em cima ele fazia a função certinho exclui do banco e da pasta a imagem, mas so uma imagem da tabela imovel e uma imagem da tabela fotos as outras imagens relacionadas com a tabela fotos nao exclui e com o codigo que o Andrey Knupp me passou ta dando esse erro que mostrei ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

perai , deixa eu entender

  • Ele tá excluindo todas de (1 tabela)
  • Ou Esta excluindo um de uma tabela e removendo 1 foto ?

 

se você ta excluindo todas de 1 tabela você tem que fazer a mesma coisa com a outra , e o foreach

 

pra cada foto de (tabela tal) então executar o delete na tabela (tal)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho duas tabelas:

 

Tabela imoveis

 

id_imoveis, endereco, numero, cidade, bairro, estado, categoria, tipo, imovelThumb(imagem principal do imovel)

essa tabela armazena todas as informações do imovel.

 

 

e a tabela fotos:

 

id_foto, fotos e id_imovel(relaciona as imagens ao imovel)

nessa tabela o usuario cadastra ate 6 fotos do imovel.

 

no codigo acima que postei ele deleta do banco de dados todos os dados tanto da tabela imoveis quanto da tabela fotos, mas as imagens que ficam armazenadas na pasta fotos ele deleta somente a que estava gravada na tabela imoveis no campo imovelThumb e 1 imagem da tabela fotos, ai se por exemplo eu tiver mais de 1 foto gravada na tabela fotos as mesmas nao deleta da pasta.

entenderam.

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.