Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nigol

[Resolvido] Excluir utilizando Checkbox

Recommended Posts

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.