2100928 Posted June 16, 2015 at 04:57 PM Report #584897 Posted June 16, 2015 at 04:57 PM 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...
capesone Posted June 16, 2015 at 05:34 PM Report #584901 Posted June 16, 2015 at 05:34 PM (edited) 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 June 16, 2015 at 05:37 PM by capesone
HappyHippyHippo Posted June 16, 2015 at 07:10 PM Report #584909 Posted June 16, 2015 at 07:10 PM 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 Portugol Plus
nitssousa Posted June 19, 2015 at 09:35 PM Report #585126 Posted June 19, 2015 at 09:35 PM O imagem é o caminho da imagem? Se for já tentaste colocar unlink($removeimagem->imagem)?
2100928 Posted June 22, 2015 at 02:04 PM Author Report #585217 Posted June 22, 2015 at 02:04 PM 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
Solution Knot Posted June 22, 2015 at 02:14 PM Solution Report #585219 Posted June 22, 2015 at 02:14 PM (edited) 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 June 22, 2015 at 02:16 PM by Knot
bioshock Posted June 22, 2015 at 02:46 PM Report #585222 Posted June 22, 2015 at 02:46 PM 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);
2100928 Posted June 23, 2015 at 11:01 AM Author Report #585261 Posted June 23, 2015 at 11:01 AM 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!! 👍
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now