Nigol 0 Denunciar post Postado Julho 28, 2009 Olá a todos. estou criando um programa simples para listar e excluir arquivos de um banco de dados, mas fiquei meio perdido na hora da exclusão.. alguém poderia me auxiliar? o trecho da exclusão está em vermelho. no caso eu acho que eu teria de veirificar a varivel $check para ver se ela está com o Checked ativo ou não. estou correto? <? ob_start(); session_start(); //Mensagem de erro $msg[0]= "Conexao com o banco falhou!"; $msg[1]="Nao foi possivel selecionar o bando de dados!"; //Fazendo a conex if($validacao==1){ $conexao = mysql_pconnect("localhost","root","") or die ($msg[0]); mysql_select_db("teste",$conexao)or die ($msg[1]); //cabecalho da tabela ?> <table border ="1"> <tr> <td><b>CODIGO</b></td> <td><b>Nome</b></td> <td><b>Email</b></td> <td><b>Marcar</b></td> </tr> <? //PHP da tabela $query = "SELECT * FROM exemplo ORDER BY codigo"; $resultado = mysql_query ($query,$conexao); while($linha=mysql_fetch_array($resultado)) {$cont=$linha[codigo]; ?> <tr> <td><? echo $linha['codigo']; ?></td> <td><? echo $linha ['nome'];?></td> <td><? echo $linha ['email'];?></td> <td> <p align="center"> <input type="checkbox" name="check[<?$cont?>]" value="" ><?echo $cont?></p></td> </tr> <? } [color="#FF0000"]if($_POST['delete']==delete) while($aux=mysql_fetch_array($resultado)){ $controle=$aux[codigo]; if($check[$controle]==?><checked><?)) mysql_query("DELETE FROM exemplo "); } }[/color] ?> </table> <input type="button" value="Voltar" onclick="javascript:window.open('campo.php','_Self')"> <br> <form method="POST" action="<?echo $PATH_INFO;?>"> <input type="submit" value="delete" name="delete" id="delete"> </form> <? } else echo "<a href=index.php>voltar</a>"; ?> OBRIGADO pela atenção galera Compartilhar este post Link para o post Compartilhar em outros sites
spawn_owns 1 Denunciar post Postado Julho 28, 2009 Poderia postar o erro ? se voce nao dizer o que esta/nao esta, acontencendo, fica dificil ;x nao esta excluindo? aparece algo ? erro mysql ? Compartilhar este post Link para o post Compartilhar em outros sites
Nigol 0 Denunciar post Postado Julho 28, 2009 Desculpem-me pela ignorancia heheheh Parse error: syntax error, unexpected ';' in /var/www/asd/aux1.php on line 44 EU havia deixado o código em comentário para deixar a parte em vermelho da exclusão. Compartilhar este post Link para o post Compartilhar em outros sites
WarLiKe 0 Denunciar post Postado Julho 28, 2009 Porque você ta usando <?$cont?> e <?echo $cont?> pra fazer uma mesma coisa? E eu acho que pelo menos você tem que colocar <?=$cont?> Precisa mesmo fazer isso? if($check[$controle]==?><checked><?)) ?? Acho melhor re-estruturar esse código todo e evitar "misturar" o PHP com o HTML E sobre excluir os registros: coloque o nome das checkbox assim: name="check[]" pegue no PHP assim e delete no mysql assim: if($_POST["check"]){ $ids = implode(", ", $_POST["check"]); mysql_query("delete from tabela where id in($ids)", $conexao); } os valores das checks selecionadas irão como arrays e o PHP vai juntar e colocar na query Compartilhar este post Link para o post Compartilhar em outros sites
Nigol 0 Denunciar post Postado Julho 28, 2009 Eu estava com name="check[<?$cont?>]" para setar diretamente o mesmo número do código com o número do array achei que me facilitaria. Sou iniciante em PHP então estou bem perdido ainda com a estrutura da linguagem. <?echo $cont?> estava usando para mostrar e testar as variaveis se estava pegando corretamente. haviam medito que nãoteria como fazer o controle dos checkbox sem misturar com HTML por isto parti para essa abordagem. vopu testar sua dica. grato pela atenção Compartilhar este post Link para o post Compartilhar em outros sites
Nigol 0 Denunciar post Postado Julho 29, 2009 WarLike fiz como me mostrastes, mas não funcionou, parce que ele não reconhece a ação do $_POST["check"]coloquei um else na seguida com um echo para ver se mudava ae ele cai sempre ali, mesmo quando clico no check box ele não muda. ele não me da nenhum erro, mas não executa a ação. eu teria q colocar algum valor no check[];? ou assim apenas check ele reconheceria? if($_POST["check"]){ $ids = implode(", ", $_POST["check"]); mysql_query("delete from tabela where id in($ids)", $conexao); } Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Julho 29, 2009 Fiz um sistema em cima do seu codigo recebendo a resposta do form por foreach que faz o loop nos registros do POST qual quer duvida posta ae. O codigo esta bem comentado abc <?php session_start(); //Mensagem de erro $msg[0]= "Conexao com o banco falhou!"; $msg[1]= "Nao foi possivel selecionar o bando de dados!"; //Fazendo a conex $conexao = mysql_pconnect("localhost","root","") or die ($msg[0]); mysql_select_db("teste",$conexao)or die ($msg[1]); # SE EXISTIR CAMPO POST/CHECK MARCADO ELE EXECUTA A AÇÃO.# if(isset($_POST['check'])) { foreach($_POST["check"] as $registro) // Loop nas linhas via post / Pode selecionar post avontade { // SEU COMANDO SQL DE DELETE PEGANDO O VALOR DO VALUE DO CHECK BOX mysql_query("DELETE FROM exemplo WHERE id = $registro "); } // fecha foreach } // fecha if(isset($_POST['check'])) # FECHA AÇÃO # //cabecalho da tabela ?> <form method="POST" action="teste.php"> <!-- Abre o Form --> <table border="1" cellpadding="0" cellspacing="0"> <tr> <td><b>CODIGO</b></td> <td><b>Nome</b></td> <td><b>Email</b></td> <td><b>Marcar</b></td> </tr> <? //PHP da tabela $query = "SELECT * FROM exemplo ORDER BY codigo"; $resultado = mysql_query ($query,$conexao); while($linha=mysql_fetch_array($resultado)) { $cont=$linha[codigo]; ?> <tr> <td><?php echo $linha['codigo']; ?></td> <td><?php echo $linha['nome'];?></td> <td><?php echo $linha['email'];?></td> <td align="center"><input type="checkbox" name="check[]" value="<?php echo $linha['codigo'];?>" ><?php echo $cont; ?></td> <!-- ATENCAO AO VALUE DO CHECK. GERALMENTE O ID DO REGISTRO PARA PODER MANIPULAR O REGISTRO NO BANCO DE DADOS --> </tr> <?php } // fecha while ?> </table> <input type="button" value="Voltar" onclick="javascript:window.open('campo.php','_Self')"> <br> <input type="submit" value="Deletar Selecionados" name="delete" id="delete"> </form> Compartilhar este post Link para o post Compartilhar em outros sites
WarLiKe 0 Denunciar post Postado Julho 29, 2009 Mas Nigol, assim não vai funcionar mesmo Cadê o form???? Você tem que ter as checkbox detro de um form que tenha como metodo o "post" entendeu? <form method="post" action="pagina.php"> //aqui as checkbox </form> Compartilhar este post Link para o post Compartilhar em outros sites
Nigol 0 Denunciar post Postado Julho 29, 2009 aos 2 PERFEITOS!!! agora ficou perfeito. tentei das duas formas para aprender... os 2 funcionaram perfeitamente. agora me resta uma dúvida... se eu quiser fazer uma Jscript para confirmação como eu o chamaria? ou há como lançar uma janela em PHP? com algo como o if(window.confirm("")) ? Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Julho 29, 2009 via jscript <script> function confirmarexclusao() { if (confirm ("Deseja realmente apagar os registros selecionados?")) return true; else return false; } </script> troca a linha: <input type="submit" value="Deletar Selecionados" name="delete" id="delete"> por esta: <input type="submit" name="Submit" value="Excluir Selecionados" onClick="return confirmarexclusao()"> []s Compartilhar este post Link para o post Compartilhar em outros sites