ademirs 0 Denunciar post Postado Fevereiro 13, 2010 Boa noite a todos. Sou novo no mundo PHP e sinceramente estou tentando algums códigos mas este me deixou de cabelo em pé, por isso peço uma orientação aos amigos aqui do fórum. Meu código deve estar com um problema sério que eu não estou vendo e confesso estou bem perdido. Segue abaixo: /* OBS: Os eventos ficam armazenados na tabela eventos e as fotos na tabela eventofotos Preciso apagar o id da tabela eventos e tudo que estiver vinculado a ela na tabela eventofotos pelo campo cod os dados foram vistos num arquivo anterior a exclusão que só mostra os dados da tabela eventos */ include("config.php"); $id = $_GET['id']; $selecionafoto = mysql_query("SELECT * FROM eventofotos WHERE cod='$_GET[id]'"); while($listar = mysql_fetch_array($selecionafoto)) { $file = $listar["file"]; } if(mysql_num_rows($selecionafoto) == '0') { echo "Você precisa selecionar uma opção para realizar a Exclusão."; exit(); } else { $sql = mysql_fetch_array($selecionafoto); if(!empty($file)) { $imagens = $file; while(list(,$lista) = each($imagens)) { unlink("uploads/$lista"); // pasta onde estão as imagens que precisam ser apagadas...tem miniaturas também "_thumbs" } } $dell = "delete from eventofotos where cod= '$_GET[id]' "; mysql_query($dell) or die(mysql_error()); $re = "DELETE from eventos WHERE id = '$_GET[id]' LIMIT 1"; mysql_query($re) or die(mysql_error()); if($re) { echo "OK, os dados foram<br />excluídos com sucesso do sistema.<br />"; echo "Clique <a href='exibir.php'><font class=msgconfirma>AQUI</font></a> para continuar..."; } else { echo "Erro, os dados nao foram<br />excluidos do sistema.<br />"; echo "Clique <a href='javascript:history.back(2)'><font class=msgconfirma>AQUI</font></a> para tentar novamente."; } @mysql_close($conexao); exit(); } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 13, 2010 explique o que está acontecendo se aparece mensagem de erro, poste-a Compartilhar este post Link para o post Compartilhar em outros sites
ademirs 0 Denunciar post Postado Fevereiro 13, 2010 Bom dia Beraldo. dá erro (warning) com a função each e diz que não é possivel ler os dados da array. acredito que meu comando de repetição while não está de acordo com os dados da array sabe...sei lá... Ele simplesmente não apaga as fotos da pasta....ele chega a eliminar do banco nas duas tabelas mas simplesmente nada acontece na pasta. Ademir Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 13, 2010 primeiramente, use mysql_num_rows antes de mysql_fetch_assoc. Não faz sentido recuperar os dados antes de saber se há dados para recuperar. Por que há essa vírgula no list()? list(,$lista) = each($imagens) Por que está usando each()? $imagens é um array? Pelo que entendi, não, pois $imagem recebe $file, que recebe um campo de texto do BD. Mesmo que $imagem seja um array, creio que o que você queria usar era explode(), não each) Compartilhar este post Link para o post Compartilhar em outros sites
ademirs 0 Denunciar post Postado Fevereiro 13, 2010 certo, valeu as dicas. vou postar o código mais simplificado, quem sabe fica melhor: <?php include("config.php"); $id = $_GET['id']; /* este id veio de uma tela de visualização dos dados...e este arquivo deveria apagar tudo, inclusive as fotos da pasta uploads mas não o faz, esta é a minha dificuldade (manipulação de imagens)....*/ $selecionafoto = mysql_query("SELECT * FROM eventofotos WHERE cod='$_GET[id]'"); while($listar = mysql_fetch_array($selecionafoto)) { $file = $listar["file"]; } $sql = mysql_fetch_array($selecionafoto); if(!empty($file)) { $imagens = $file; while(list($lista) = each($imagens)) { unlink("uploads/$lista"); // pasta onde estão as imagens que precisam ser apagadas...tem miniaturas também "_thumbs" } } $dell = "delete from eventofotos where cod= '$_GET[id]' "; mysql_query($dell) or die(mysql_error()); $re = "DELETE from eventos WHERE id = '$_GET[id]' LIMIT 1"; mysql_query($re) or die(mysql_error()); if($re) { echo "OK, os dados foram<br />excluídos com sucesso do sistema.<br />"; echo "Clique <a href='exibir.php'><font class=msgconfirma>AQUI</font></a> para continuar..."; } else { echo "Erro, os dados nao foram<br />excluidos do sistema.<br />"; echo "Clique <a href='javascript:history.back(2)'><font class=msgconfirma>AQUI</font></a> para tentar novamente."; } @mysql_close($conexao); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 13, 2010 Por que está usando list() e each()? Como eu disse no post anterior, parece-me que $file é uma string vinda do BD, não um array. Mas você não disse se estou certo ou errado... PS 1: Quando houver erro, poste a mensagem de erro que aparece, exatamente. PS 2: Quando postar códigos, insira-os entre as tags [ code] e [ /code] (sem espaço , claro) Compartilhar este post Link para o post Compartilhar em outros sites
ademirs 0 Denunciar post Postado Fevereiro 13, 2010 Galera, fechou meu código. Estou postando para vocês utilizarem ai e se for possível alguém me dar uma dica para melhorar agradeço. Obrigado a todos que me ajudaram. Abraço. <?php include("config.php"); $id = $_GET['id']; $selecionafoto = mysql_query("SELECT * FROM eventosfotos WHERE cod='$_GET[id]'"); while($listar = mysql_fetch_assoc($selecionafoto)) { $foto= $listar['foto']; { unlink("uploads/$foto"); } $r1 = "delete from eventosfotos where cod= '$_GET[id]' "; mysql_query($r1) or die(mysql_error()); $r2 = "DELETE from eventos WHERE id = '$_GET[id]' LIMIT 1"; mysql_query($r2) or die(mysql_error()); } if($r1==true || $r2==true) { echo "OK"; } else { echo "Erro, os dados nao foram<br />excluidos do sistema.<br />"; echo "Clique <a href='javascript:history.back(1)'>AQUI</a> para tentar novamente."; } @mysql_close($conexao); ?> Compartilhar este post Link para o post Compartilhar em outros sites
ademirs 0 Denunciar post Postado Fevereiro 13, 2010 Por que está usando list() e each()? Como eu disse no post anterior, parece-me que $file é uma string vinda do BD, não um array. Mas você não disse se estou certo ou errado... PS 1: Quando houver erro, poste a mensagem de erro que aparece, exatamente. PS 2: Quando postar códigos, insira-os entre as tags [ code] e [ /code] (sem espaço , claro) ok Beraldo, nas próximas posto em , nem me toquei.abraço e sucesso! Compartilhar este post Link para o post Compartilhar em outros sites