Jump to content


Photo

Ao Deletar, Deletar Também As Imagens


  • Faça o login para participar
13 replies to this topic

#1 gregorytg

gregorytg

    Mestre

  • Usuários
  • 632 posts
  • Sexo:Não informado

Posted 01/11/2004, 17:19

;) Ae, estou fazendo um sistema de wallpapers.
Mais tenho 2 problemas o 1 é
Como faço para na hora de deletar ele também deletar a IMAGEM que esta na pasta imagens?

o outro problema é sobre antes de enviar o arquivo como faço para ele VEREFICAR se a imagem ja existe na pasta, e se no caso existir ele a RENOMEAR?

Mais estou dando critério a 1ª pergunta, sobre deletar ;)
"Porque o Senhor será a tua confiança, e guardará os teus pés de serem presos". \o/

#2 ffmm

ffmm

    Veterano

  • Usuários
  • 1224 posts
  • Sexo:Não informado

Posted 01/11/2004, 18:41

1) Faça um select antes que pegue o endereço da imagem (no caso, o nome), depois use a função unlink() para deletar o arquivo.

2) Use a função file_exists().

#3 gregorytg

gregorytg

    Mestre

  • Usuários
  • 632 posts
  • Sexo:Não informado

Posted 01/11/2004, 19:21

Cara show de bole eu também estava ligado nesta funçã ode deletar.
Cara eu to iniciando em PHP
e eu tenho o seguinte cod
PHP

<?php
include ("../config.php");

$nome = $_POST['nome'];
$por = $_POST['por'];
$file = $_POST['file'];

$sql = ("DELETE FROM tabela WHERE id = $id");

int unlink ( string imagens/$file) /* Função de deletar*/

$sql = mysql_query($sql)
or die (
"Erro");



echo
'<font color="#404040" size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Célula deletada com sucesso!</b></font>';
?>


Pode notar que a função ainda não está "CERTA" como eu faço para deletar uma imagem que vai ter o NOME $file <--- que pode ter o nome de acordo com o arquivo que está na pasta IMAGENS.

Não sei se fikou claro.
Se puder me ajudar com isso ;)
"Porque o Senhor será a tua confiança, e guardará os teus pés de serem presos". \o/

#4 ffmm

ffmm

    Veterano

  • Usuários
  • 1224 posts
  • Sexo:Não informado

Posted 01/11/2004, 19:46

Supondo-se que o nome do arquivo vai estar na variável $file e ele esta na pasta imagens, a função ficará:
unlink('imagens/'.$file); /* Função de deletar*/

#5 gregorytg

gregorytg

    Mestre

  • Usuários
  • 632 posts
  • Sexo:Não informado

Posted 01/11/2004, 20:06

Cara deu esse problema

Warning: unlink(imagens/): Is a directory in /home/gregory/public_html/wallpapers/deletar.php on line 10

COD é esse

PHP

<?php
include ("config.php");

$nome = $_POST['nome'];
$por = $_POST['por'];
$file = $_POST['file'];

$sql = ("DELETE FROM tabela WHERE id = $id");

unlink('imagens/'.$file); /* Função de deletar*/

$sql = mysql_query($sql)
or die (
"Erro");

echo
'<font color="#404040" size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Sucesso!</b></font>';
?>


O que está errado? Abraços

Eu quero apenas deletar o $file, não a pasta toda ENTENDE?
Abraços ;)

Edição feita por: gregorytg, 01/11/2004, 20:14.

"Porque o Senhor será a tua confiança, e guardará os teus pés de serem presos". \o/

#6 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 01/11/2004, 20:14

Olá,

Cara, eu tava dando uma olhada ai e uma duvida minha pode até resolver teu problema, pq o campo $file vc coloca o nome da foto?

faça um form onde vc digita apenas o id do campo da tabela que vc quer deletar...
Ai ele vai fazer um select, se for igual a 1 ele deleta a foto e exclui o arquivo.
Fiz um cod aki, testa ai..

<?php
include ("config.php");

$sql = "SELECT * FROM tabela where id = '$id' ";
$result = mysql_query($sql) or die("Query failed");
while ($r = mysql_fetch_array($result)) {
extract($r);
}
if ($sql == 1) {
unlink("imagens/$file");
$del = ("DELETE FROM tabela WHERE id = $id");
} else {
echo "Nenhum arquivo foi encontrado";
}
?>

Testa ai!

Edição feita por: danilodepolli, 01/11/2004, 20:17.

Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#7 NightHawk

NightHawk

    NightHawk!

  • Usuários
  • 182 posts
  • Sexo:Não informado

Posted 01/11/2004, 20:15

cara poem assim a funcao..

PHP
<?php


unlink
("imagens/$file");


?>


#8 gregorytg

gregorytg

    Mestre

  • Usuários
  • 632 posts
  • Sexo:Não informado

Posted 01/11/2004, 20:32

Cada deu a mesma coisa

Warning: unlink(imagens/): Is a directory in /home/gregory/public_html/wallpapers/deletar.php on line 10

Eu acho que ele está querendo deletar todo o DIRETORIO.
e eu quero que delete apenas o $file
"Porque o Senhor será a tua confiança, e guardará os teus pés de serem presos". \o/

#9 ffmm

ffmm

    Veterano

  • Usuários
  • 1224 posts
  • Sexo:Não informado

Posted 01/11/2004, 20:33

A variável $file possúi o nome da imagem que será deletada? Se não, faça uma consulta SQL pra pegar o nome.

#10 gregorytg

gregorytg

    Mestre

  • Usuários
  • 632 posts
  • Sexo:Não informado

Posted 01/11/2004, 20:35

Sim a $file posssui o nome da Imagem

ID ||nome|| por || file

4 ||Dani || ||Dani001.jpg

Pode notar que ele esta mandando o valor certo para o FILE

Edição feita por: gregorytg, 01/11/2004, 20:39.

"Porque o Senhor será a tua confiança, e guardará os teus pés de serem presos". \o/

#11 gregorytg

gregorytg

    Mestre

  • Usuários
  • 632 posts
  • Sexo:Não informado

Posted 01/11/2004, 20:48

Ae consegui.
Fazendo pelo o que FFMM falou.

PHP

<?php
include ("config.php");

$query = "SELECT * FROM tabela WHERE id = $id";
$result = mysql_query($query) or die ("Error in query: $query. " .mysql_error());

while (
$row = mysql_fetch_assoc($result)) { /*while = Enquanto*/

$file = $row['file'];
}

$nome = $_POST['nome'];
$por = $_POST['por'];

$sql = ("DELETE FROM tabela WHERE id = $id");

unlink('imagens/'.$file); /* Função de deletar*/

$sql = mysql_query($sql)
or die (
"Erro");

echo
'<font color="#404040" size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Sucesso!</b></font>';
?>



Se tiver algum erro gostaria de que alguém me ajudasce, pois misturei consulta com $_POST

Edição feita por: gregorytg, 01/11/2004, 20:49.

"Porque o Senhor será a tua confiança, e guardará os teus pés de serem presos". \o/

#12 ffmm

ffmm

    Veterano

  • Usuários
  • 1224 posts
  • Sexo:Não informado

Posted 01/11/2004, 21:19

Troque:
while ($row = mysql_fetch_assoc($result)) { /*while = Enquanto*/

$file = $row['file'];
}

Por:
$row = mysql_fetch_assoc($result);
$file = $row['file'];

Afinal, teremos um resultado só. O resto ta blz!

#13 gregorytg

gregorytg

    Mestre

  • Usuários
  • 632 posts
  • Sexo:Não informado

Posted 01/11/2004, 21:23

;)
Entendi na verdade é TIRAR o WHILE "enquanto"
Pois ele ja vai fazer a culta pelo $id ;)

Seria +/- isso ?
;)
"Porque o Senhor será a tua confiança, e guardará os teus pés de serem presos". \o/

#14 ffmm

ffmm

    Veterano

  • Usuários
  • 1224 posts
  • Sexo:Não informado

Posted 02/11/2004, 00:16

Tipo, o while nesse caso serve para ele executar a determinada ação ($file = $row['file'];) pra cada item da consulta. Como temos apenas um item, não é necessário o while().




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq