Ir para conteúdo

POWERED BY:

Arquivado

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

Husky

Erro ao deletar registro com checkbox

Recommended Posts

Olá pessoal, estou tentando deletar vários registros de uma vez via checkbox, mas algo esta errado, segue o código:

 

 

bdRemoveNoticia1.php

<form name="Remove" method="post" action="bdRemoveNoticia2.php">
<?php
$_con = mysqli_connect( "localhost" , "root" , "root" , "bdnoticias" );

if ( $_con === false ){
	echo "Não foi possível canoectar com MySQL";
	mysqli_error();
	exit();
}

$_sql = "SELECT titulo, sessao, data FROM noticia WHERE titulo='" . $_POST[ 'pesquisa' ] . "'";
$_res = mysqli_query( $_con , $_sql );

if ( $_res === false ){
	echo "Registro não encontrado<br />";
} else{
	while ( $_row = mysqli_fetch_array( $_res ) ){ ?>
<input type="checkbox" id="opcao[]" name="opcao[]" value="<?php $_rows[ 'id' ]; ?>">
	<?php
		echo $_row[ 'titulo' ] . " " . $_row[ 'sessao' ] . " " . $_row[ 'data' ] . "<br><br>";
	}
}
?>
<input type="submit" name="remove" value="Remover">

 

bdRemoveNoticia2.php

<?php
$_con = mysqli_connect( "localhost" , "root" , "root" , "bdnoticias" );

if ( $_con === false ){
echo "Não foi possível canoectar com MySQL";
mysqli_error();
exit();
}

$_res = mysqli_query( $_con , $_sql );

while ( $_row = mysqli_fetch_array( $_res ) ){
$_sql = "DELETE id, titulo, noticia, sessao,data FROM noticia WHERE titulo='" . $_POST[ 'opcao' ] . "'";
}

if ( $_res === false ){
echo "Erro ao deletar registro<br />";
} else{
echo "registro deletado com sucesso";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, estou tentando deletar vários registros de uma vez via checkbox, mas algo esta errado, segue o código:

 

Amigão, lamento dizer isso mas existem vários erros no seu código,

 

O que está causando o comportamento problemático está aqui:

 

<input type="checkbox" id="opcao[]" name="opcao[]" value="<?php $_rows[ 'id' ]; ?>">

 

Deveria estar assim:

 

<input type="checkbox" id="opcao[]" name="opcao[]" value="<?php echo $_rows[ 'id' ]; ?>">

 

Perceba o echo antes do $_rows[ 'id' ]. Apenas colocar o valor entre as tags PHP não fará com que esse apareça no atributo value, é a mesma coisa que fazer o seguinte:

 

$nome;

 

Supondo que a variável $nome contenha o valor João Neto, o fragmento acima não deverá exibir absolutamente nada na tela, uma vez que você não mandou que fosse exibido (usando echo ou print por exemplo).

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

mudei apenas essa linha:

 

<input type="checkbox" id="opcao[]" name="opcao[]" value="<?php echo $_rows[ 'id' ]; ?>">

 

Ele cai na msg: Erro ao deletar registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem mais coisa errada. Você tá executando a query antes de ter a query. Coloque a execução dentro do laço.

 

Veja se fazendo assim insere os dados corretamente no banco.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq nas condições dos seus If's existem 3 === s ?

 

3 === é o operador de idêntico.

http://www.php.net/manual/en/language.operators.comparison.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php 

	$_con=mysqli_connect("localhost","root","root", "bdnoticias");
 if($_con===false){
	echo "Não foi possível canoectar com MySQL";
	mysqli_error();
	exit();	
}
	
     while($_row=mysqli_fetch_array($_res)){
     	 
    $_sql="DELETE id, titulo, noticia, sessao,data FROM noticia WHERE titulo='".$_POST['opcao']."'";
    $_res=mysqli_query($_con,$_sql);
     }

	if($_res===false){
		echo "Erro ao deletar registro<br />";
	}else{
		echo "registro deletado com sucesso";
	}


?>

coloquei a query antes e depois do delete, deu a mesma coisa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... você tá guardando o id da noticia nos checkbox ne?

 

faça o seguinte:

while($_row=mysqli_fetch_array($_res)){
         
    $_sql="DELETE id, titulo, noticia, sessao,data FROM noticia WHERE titulo='".$_POST['opcao']."'";
    $_res=mysqli_query($_con,$_sql);
     }
troca por:

$_sql="DELETE FROM noticia WHERE id IN ('". implode( ',', POST['opcao']". ')";
      $_res=mysqli_query($_con,$_sql);

E isso:

$_sql = "SELECT titulo, sessao, data FROM noticia WHERE titulo='" . $_POST[ 'pesquisa' ] . "'";
troca por:

$_sql = "SELECT id, titulo, sessao, data FROM noticia WHERE titulo='" . $_POST[ 'pesquisa' ] . "'";

Agora, os checkbox servem para deletar várias noticias? e você busca elas pelo titulo ?

Após isso, reposte os teus códigos completos.. e diga se retornou algum erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu um erro de sintaxe nessa linha: $_sql="DELETE FROM noticia WHERE id IN ('". implode( ',', POST['opcao']". ')";

 

Sim, o checkbox é pra deletar vários registros ao mesmo tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.