Curso de PHP – Excluindo dados do Banco de Dados
Excluindo dados do Banco de Dados MySQL
Nesta lição vamos aprender a apagar (excluir) dados do banco de dados. É uma operação corriqueira, porém muito delicada, pois se for realizada de forma incorreta pode acarretar na perda de dados do banco, de forma irremediável se não houver backup.
Usando nosso banco de dados de exemplo das lições anteriores, vamos efetuar a exclusão dos dados a partir dos nomes cadastrados na tabela Cadastro, com o comando SQL a seguir:
DELETE FROM Cadastro WHERE NomeCliente='$nome';
Onde $nome é um valor informado pelo usuário em um formulário como o seguinte:
Ao clicar no botão Excluir, o nome do cliente a ser excluído é enviado para o script PHP que batizaremos de excluir.php para execução da declaração.
Vamos ao exemplo:
Código do exemplo
Vamos criar dois arquivos: um de nome excluir.html, que conterá o formulário mostrado anteriormente, e outro de nome excluir.php, que irá efetuar a rotina de exclusão no banco usando os dados enviados pelo formulário via método POST.
Arquivo excluir.html
Segue o código da página contendo o formulário HTML:
<!DOCTYPE html> <html lang="pt-br"> <head> <title> Exclusão de Dados </title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <h3>Excluir Cliente</h3> <form name="Cadastro" action="excluir.php" method="POST"> <label>Digite o nome do cliente:</label> <input type="text" name="nome"><br><br> <input type="submit" name="enviar" value="Excluir"> </form> </body> </html>
Arquivo excluir.php
Crie agora um novo script de nome excluir.php e insira o código a seguir nele:
$strcon = mysqli_connect('localhost','fabio','123','banco_teste') or die('Erro ao conectar ao banco de dados requisitado'); $nome = $_POST['nome']; $sql = "DELETE FROM Cadastro WHERE NomeCliente='$nome'"; mysqli_query($strcon,$sql) or die("Erro ao tentar excluir registro"); // Verificar se algum registro foi excluído ou não if (mysqli_affected_rows($strcon)) { // se houver linhas afetadas, o dado foi excluído echo "Cliente excluído"; } else { mysqli_close($strcon); die("Erro ao tentar excluir registro"); } // Fechar a conexão mysqli_close($strcon); // Redirecionar para página inicial após 5 segundos: header("refresh:5;url=index.html");
Na prática devemos utilizar campos que identifiquem de forma única o registro que será excluído, como campos com códigos ou números de identificação, de modo a evitar a exclusão acidental de registros.
não funcionou amigo…
Parse error: in C:\xampp\htdocs\excluir.php on line 4
Olá, Vini, deu o mesmo erro pra mim, no meu caso esqueci de colocar o method=”POST” no html ou method=”GET” caso use get no php, o method no html tem que estar definido igual o que for usado no php, sem ele o php dava erro… o html de teste que usei e funcionou no final ficou assim:
Excluir dados
Formulário de Excluir
Informe o nome a ser excluído: