Ir para conteúdo

POWERED BY:

Arquivado

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

Ygornet

Problemas com o comando DELETE

Recommended Posts

Galera to aki quebrando cabeça com um script que fiz.

Tipo.. insiro dados no bd atraves de um form, ateh aí beleza.

Esses dados mostro em uma pagina, em forma de tabela, que puxa esses dados do bd.

 

controle.php

Nessa tabela tem o campo Excluir, com o seguinte link = <a href='excluir.php?id=$id'>Excluir</a>.

 

excluir.php

Nessa pagina eu tenho: $sql = "DELETE FROM dados WHERE id='$id'";

 

Bom aí vem o meu problema, quando clico em Excluir na linha que eu quero que exclua, só exclui a linha de ID menor, independente da linha selecionada.

 

por exemplo:

 

tenho no banco

id = 1

id = 2

id = 3

 

Se clico rpa excluir id = 2, é excluido o id = 1

Isso tb ocorre se eu tentar excluir o id = 3.

 

Oq pode ser isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ZENDMaNTo resgatando a variavel da seguinte forma:$sql2 = "SELECT * FROM dados ";$resultado2 = mysql_query($sql2) or die ("Não foi possível realizar a consulta ao banco de dados");while ($linha=mysql_fetch_array($resultado2)){$id = $linha["id"];...Pois esta armazenada no banco , e qndo passo o mouse em cima de cada excluir , aparece o id correto no link pra excluir , mas na hora q exclui nao exclui o id referente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Excluir.php

 

<?phpsession_start();include "autorizacao_adm.php";require"conexaod.php";//include"controle.php";$sql2 = "SELECT * FROM dados ";$resultado2 = mysql_query($sql2) or die ("Não foi possível realizar a consulta ao banco de dados");while ($linha=mysql_fetch_array($resultado2)){$id = $linha["id"];$nossonumero = $linha["nossonumero"];$nome = $linha["nome"];$valor = $linha["valor"];$rua = $linha["rua"];$cidade = $linha["cidade"];$estado = $linha["estado"];$cep = $linha["cep"];$data = $linha["data"];$hora = $linha["hora"];$cn_cpf = $linha["cn_cpf"];}$sql = "DELETE FROM dados WHERE id='$id'";$resultado = mysql_query($sql) or die ("Não foi possível executar a exclusão dos dados.");//echo"<h1>A notícia foi excluída com êxito!</h1>";echo "<script type=\"text/javascript\">";echo "alert('A baixa foi dada com sucesso!');";echo "self.location=\"controle.php\"";echo "</script>";?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother deixe-me entender seu script, o excluir.php vai apenas excluir um determinado registro certo?

 

 

se sim pra que isso?

 

id = $linha["id"];$nossonumero = $linha["nossonumero"];$nome = $linha["nome"];$valor = $linha["valor"];$rua = $linha["rua"];$cidade = $linha["cidade"];$estado = $linha["estado"];$cep = $linha["cep"];$data = $linha["data"];$hora = $linha["hora"];$cn_cpf = $linha["cn_cpf"];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade antes tava só o $id = $linha["id"];Mas coloquei os outros por que , copiei essa parte do script da pagina controle.php, que mostra todas as linhas cadastradas no banco, na tela.Ops esqueci de responder , sim , é só pra excluir

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então brother imagino que o script que lista os registro tenha um link do tipo:

 

<a href='excluir.php?id=$id'>

isso siguinifica que você esta passando a var id pelo metodo GET

 

ao fazer isso a pagina excluir.php ficaria da seguinte maneira:

 

$sql = mysql_query("DELETE FROM dados Where id='".$_GET['id]."' LIMIT 1");echo"<h1>A notícia foi excluída com êxito!</h1>";echo "<script type=\"text/javascript\">";echo "alert('A baixa foi dada com sucesso!');";echo "self.location=\"controle.php\"";echo "</script>";

 

ou

$id = $_GET['id'];$sql = "DELETE FROM dados WHERE id='$id'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa , viajei aki agora , brigado aew MaNResolvido

Comigo também está acontecendo algo parecido na pagina de edição. ao editar um registro ele edita todos os registros :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece, pq provavelmente, quase 99,99% de certeza, pq você não esta usando algum filtro na hora de dar o update, ou seja, não existe um WHERE no update

Nossa , viajei aki agora , brigado aew MaNResolvido

Comigo também está acontecendo algo parecido na pagina de edição. ao editar um registro ele edita todos os registros :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Thunder, posta se script ai talvez eu possa te ajudar!

é o seguinte:<?phpif($_SERVER["REQUEST_METHOD"] == "POST") {$id_cli = $_POST["id_cli"];$nome_cli = $_POST["nome_cli"];$end_cli = $_POST["end_cli"];$cidade_cli = $_POST["cidade_cli"];$uf_cli = $_POST["uf_cli"];$cnpj_cli = $_POST["cnpj_cli"];$obs = $_POST["obs"];include "conecta.php";if(@mysql_query("UPDATE tb_clientes SET id_cli = '$id_cli', nome_cli = '$nome_cli', end_cli = '$end_cli', cidade_cli = '$cidade_cli', uf_cli = '$uf_cli', cnpj_cli = '$cnpj_cli', obs = '$obs'")) { if(mysql_affected_rows() == 1){ echo "Registro atualizado com sucesso"; } } else { echo "Erro nao foi possivel efetuar a edição"; exit; @mysql_close();}?><a href="listar.php">Voltar</a>outro problema, como eu edito um campo textarea? pois naum aprece valor da variavel?criei um campo text para alterar, está certo isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

falei!

só não ganho na loto!

no UPDATE, falta um WHERE

 

mysql_query("UPDATE tb_clientes SET id_cli = '$id_cli',nome_cli = '$nome_cli',end_cli = '$end_cli',cidade_cli = '$cidade_cli',uf_cli = '$uf_cli',cnpj_cli = '$cnpj_cli',obs = '$obs' WHERE id_cli=". $_POST['id_cli'] ."")

Compartilhar este post


Link para o post
Compartilhar em outros sites

falei!só não ganho na loto!no UPDATE, falta um WHERE

mysql_query("UPDATE tb_clientes SET id_cli = '$id_cli',nome_cli = '$nome_cli',end_cli = '$end_cli',cidade_cli = '$cidade_cli',uf_cli = '$uf_cli',cnpj_cli = '$cnpj_cli',obs = '$obs' WHERE id_cli=". $_POST['id_cli'] ."")
hahahaha...Valew void, cara continua assim que qualquer hora você acerta na mega - sena sozinho heheheeu nem tinha terminado de postar e você já tinha respondido!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outro problema, provavelmente o campo id_cli é chave primária, ele nem devaria estar na string do update.

mysql_query("UPDATE tb_clientes SET nome_cli = '$nome_cli',end_cli = '$end_cli',cidade_cli = '$cidade_cli',uf_cli = '$uf_cli',cnpj_cli = '$cnpj_cli',obs = '$obs' WHERE id_cli=". $_POST['id_cli'] ."")
repare que tirei o campo id_cli do update

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outro problema, provavelmente o campo id_cli é chave primária, ele nem devaria estar na string do update.

mysql_query("UPDATE tb_clientes SET nome_cli = '$nome_cli',end_cli = '$end_cli',cidade_cli = '$cidade_cli',uf_cli = '$uf_cli',cnpj_cli = '$cnpj_cli',obs = '$obs' WHERE id_cli=". $_POST['id_cli'] ."")
repare que tirei o campo id_cli do update
Brigadu tbm calcio, vou estar testando em casa pq aqui no trabalho eu naum tenho o banco de dados funfando.

depois aviso o qual funcionou

 

Agradeço a todos que ajudaram.

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.