Jump to content


Photo

Deletando Registros Através De Uma Lista


  • Faça o login para participar
1 reply to this topic

#1 Daniel Filho

Daniel Filho

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Não informado

Posted 02/11/2009, 13:16

Estou fazendo um simples sistema de notícia em PHP, com o intuito de aprender.

Pois bem, já consegui montar o banco de dados e fazer o script que adicionasse as notícias nele. Assim como também já consegui fazer a recuperação das notícias em uma outra página.

O problema agora, é que eu estou tentando criar um "painel", onde sejam exibidos os títulos das notícias (de todas ja inseridas no banco de dados) e com cada uma, a opção de deletá-la.

Acho qeu já cheguei bem perto.

Deem uma olhada no código, eu comentei ele todo para que vocês possam me entender melhor.

<?php
 include "conexao.php"; //Faz a conexão com o banco de dados
 $exibir_sql = mysql_query("SELECT titulo FROM noticia ORDER BY id DESC"); //Busca os títulos das notícias ja registradas para exibi-las
 $exibir_id = mysql_query("SELECT id FROM noticia"); //Busca a id das notícias ja registradas para serem usadas na ação de deletar
 $linhas = mysql_num_rows($exibir_sql); //Determina o número de linhas para ser usada na lógica do loop
 for ($contador = 0; $contador<$linhas; $contador++) { // Início do loop
	 $titulo = mysql_result($exibir_sql, $contador, "titulo"); //Responsável por ordenar as notícias
	 $id = mysql_result($exibir_id, $contador, "id"); //Responsável por ordenar os ids
	 $deletar = mysql_query("DELETE FROM noticia WHERE id='$id'"); //Responsável por deletar os ids (aqui que está o problema)
	 echo "$titulo - <a href='del.php?id=\"$id\"'>REMOVER</a>"; //Exibi o título das notícias e a ação para deleta-la
	 echo "<br />"; //Quebra de linha para melhor organizar as notícias
 } //Fim do loop
 mysql_close($conexao); //Fecha a conexão com o banco de dados
 ?>

Então, os títulos são exibidos de forma correta, assim como a opção "REMOVER" também.

O problema é que quando eu clico em remover, a URL é carregada (com a id de cada notícia), porém, todos os registros do banco de dados são apagados.

Alguém pode me dar uma luz?

#2 jhrebuski

jhrebuski

    jhrhp

  • Usuários
  • 173 posts
  • Sexo:Não informado

Posted 02/11/2009, 14:20

Essa página que você postou é a del.php?

<?php
include "conexao.php"; //Faz a conexão com o banco de dados
$exibir_sql = mysql_query("SELECT titulo FROM noticia ORDER BY id DESC"); //Busca os títulos das notícias ja registradas para exibi-las
$exibir_id = mysql_query("SELECT id FROM noticia"); //Busca a id das notícias ja registradas para serem usadas na ação de deletar
$linhas = mysql_num_rows($exibir_sql); //Determina o número de linhas para ser usada na lógica do loop
for ($contador = 0; $contador<$linhas; $contador++) { // Início do loop
	 $titulo = mysql_result($exibir_sql, $contador, "titulo"); //Responsável por ordenar as notícias
	 $id = mysql_result($exibir_id, $contador, "id"); //Responsável por ordenar os ids
	 echo "$titulo - <a href='del.php?acao=del&id=\"$id\"'>REMOVER</a>"; //Exibi o título das notícias e a ação para deleta-la
	 echo "<br />"; //Quebra de linha para melhor organizar as notícias
} //Fim do loop
switch($_GET[acao]){
case del:
$deletar = mysql_query("DELETE FROM noticia WHERE id='$_GET[id]'");
break;
}
mysql_close($conexao); //Fecha a conexão com o banco de dados
?>
Salve como del.php

Assim é pra funcionar.

Até mais.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq