Jump to content
2100928

[Resolvido] unlink

Recommended Posts

2100928

Boa tarde,

Uma ajudinha pf...

$id = $_GET["id"];
$sql = mysql_query("SELECT imagem FROM banner_categorias WHERE ID = $id");
$removeimagem = mysql_fetch_object($sql);
unlink($removeimagem);
$query= "DELETE FROM banner_categorias WHERE ID = $id";
$delete= mysql_query($query);
if(!$delete){
   echo "erro!! não foi possivel apagar dado.";   
}
else{
   echo"Dado removido com sucesso!";
   header("Location: bannerTopoCategoria.php");
}

O caminho da imagem esta guardado no campo imagem da tabela banner_categorias. (Ex. ../img/banner/categoria1.jpg)

A imagem é guardada nessa pasta quando é inserida uma linha através do formulario.

Quando vou remover, a linha é removida da tabela com sucesso, no entanto não estou a conseguir remover a imagem da pasta.

Não retorna nenhum erro...


André Almeida

Programação Web

Design de Comunicação

Web Marketing

Share this post


Link to post
Share on other sites
capesone

Nao retorna nenhum erro pois nao estás apenas a retornar uma mensagem caso a QUERY seja bem executada e nao a função unlink

-Ve qual o resultado da $removeimagem logo apos a criares-a

-Põe um if de sucesso\erro no unlink e verifica qual a mensagem retornada!

O mais provavel é nao estar a apagar devido a patch da imagem nao estar bem definida.

Tenta usar tambem patchs absolutas

Outra coisa é que deves usar pdo ou mysqli, o mysql velho vai ser removido daqui a pouco tempo

Edited by capesone

Share this post


Link to post
Share on other sites
HappyHippyHippo

Nao retorna nenhum erro pois nao estás apenas a retornar uma mensagem caso a QUERY seja bem executada e nao a função unlink

-Ve qual o resultado da $removeimagem logo apos a criares-a

-Põe um if de sucesso\erro no unlink e verifica qual a mensagem retornada!

O mais provavel é nao estar a apagar devido a patch da imagem nao estar bem definida.

Tenta usar tambem patchs absolutas

???

$removeimagem = mysql_fetch_object($sql); // <--- o que achas que a função 'mysql_fetch_object' retorna ?
unlink($removeimagem);


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
nitssousa

O imagem é o caminho da imagem?

Se for já tentaste colocar unlink($removeimagem->imagem)?

Share this post


Link to post
Share on other sites
2100928

O mais provavel é nao estar a apagar devido a patch da imagem nao estar bem definida.

Tenta usar tambem patchs absolutas

Confirmei e sim o caminho está correcto, no entanto também tentei com o patch absoluto e não resulto na mesma

O imagem é o caminho da imagem?

Se for já tentaste colocar unlink($removeimagem->imagem)?

Sem sucesso, o resultado parece ser o mesmo


André Almeida

Programação Web

Design de Comunicação

Web Marketing

Share this post


Link to post
Share on other sites
Knot

Eu usei ainda hoje da seguinte maneira e funcionou bem:

$search_fich=mysqli_query($link, "select certificate_name from supplier_certificates where certificate_id='$cert'"); //pesquiso o nome do ficheiro
$row=mysqli_fetch_assoc($search_fich);
$dir="..\\supplier_certificates\\"; //defino o caminho relativo
$delete_file=unlink($dir.iconv('UTF-8', 'Windows-1252', $row['certificate_name'])); //removo o ficheiro com caminho/nome_ficheiro

Utilizei o iconv pq quando guardo o ficheiro também o uso, pois estava-me a dar problemas com acentuação no nome dos ficheiros.

Edited by Knot

Share this post


Link to post
Share on other sites
bioshock

Ou não estás a retornar nenhum resultado da base de dados ou o caminho está errado. Eu sei que o caminho que tens na base de dados está correcto, mas tens de ter em conta também o caminho de onde estás a executar a função para remover a imagem.

O ideal será criares uma constante que te indique a pasta ROOT e a partir daí colocar o caminho.

De salientar que as variáveis constantes devem estar definidas num ficheiro à parte, incluídas em todo o projecto e na pasta inicial. Portanto terias algo do género:

define('ROOTPATH', __DIR__);
unlink(ROOTPATH . $removeimagem);

Share this post


Link to post
Share on other sites
2100928

Eu usei ainda hoje da seguinte maneira e funcionou bem:

$search_fich=mysqli_query($link, "select certificate_name from supplier_certificates where certificate_id='$cert'"); //pesquiso o nome do ficheiro
$row=mysqli_fetch_assoc($search_fich);
$dir="..\\supplier_certificates\\"; //defino o caminho relativo
$delete_file=unlink($dir.iconv('UTF-8', 'Windows-1252', $row['certificate_name'])); //removo o ficheiro com caminho/nome_ficheiro

Utilizei o iconv pq quando guardo o ficheiro também o uso, pois estava-me a dar problemas com acentuação no nome dos ficheiros.

Excelente, agora sim funcionou :)

Obrigado!! :thumbsup:


André Almeida

Programação Web

Design de Comunicação

Web Marketing

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.