Mini Curso de PHP – Sistema de notícias (Deletar usuário) – Aula 13


1 Estrelas2 Estrelas3 Estrelas4 Estrelas5 Estrelas (5 votos, média: 4.80 de 5)
Loading ... Loading ...

Bom pessoal, nosso curso esta andando um pouco devagar – eu admito -, mas prometo que ele não vai parar. Vou me esforçar ao máximo para finalizá-lo. Tenho recebido diversos e-mails elogiando o conteúdo e pedindo mais posts. Fico muito feliz em ver que o conteúdo do meu blog esta sendo útil.

Hoje, vamos aprender como deletar um registro do banco de dados. Na aula passada vimos como inserir dados(INSERT) no banco e como selecionar(SELECT) para exibi-los.

Veja abaixo como é o código SQL para executar tal tarefa:

  1. DELETE FROM nome_da_tabela

Mas, quase SEMPRE vamos apagar um(ns) registro(s) específico(s) do banco de dados. É aqui que entra o campo ID que criamos na tabela, você lembra? Ele serve para criar um numero inteiro e sempre é incrementado, ou seja, nunca terá dois registros com o mesmo ID. Este ID será usado para especificar ‘quem’ será deletado. Portanto, veja abaixo como ficaria um código SQL completo:

  1. DELETE FROM nome_da_tabela WHERE campo_criterio = ‘valor’


Perceba que usamos o comando WHERE para informar qual registro será apagado. Se você não especificar um WHERE, TODOS OS REGISTROS DESTA TABELA SERÃO APAGADOS.

Para ver a documentação completa deste comando SQL: http://dev.mysql.com/doc/refman/5.0/en/delete.html

Muito bem, agora já sabemos na teoria como funciona esse lance de apagar coisas do banco de dados, agora vamos aplicar isto em nosso sistema de noticias. Veja abaixo o que será feito hoje:

  1. Criar um link ao lado dos usuários do sistema para apagá-lo;
  2. Criar o arquivo que será responsável por apagar o registro;

Então mãos a obra!!!!!!

Precisamos criar um link que quando a pessoa clicar, o usuário será apagado. Mas, como sabemos, precisamos saber qual usuário será apagado do banco de dados. Mas como vamos saber isto? Utilizando o campo ID. Ao clicar no link ‘Apagar’, o sistema direcionara para a pagina ‘usuario_delete.php’, este por sua vez, precisará receber o ID do usuário que será apagado. Faremos a passagem deste parâmetro via GET, ou seja, iremos colocar o ID do usuário na URL. Abra o arquivo ‘usuario_lista.php’ e faça as seguintes adaptações:

  1. Acrescente o campo ID na lista de campos retornados pelo SELECT(linha 8);
  2. Coloque o ID em uma variável(linha 25);
  3. Crie o link de ‘Apagar’ passando o ID via GET para a pagina ‘usuario_delete.php’(linha 28);

Veja abaixo como ficou o código do arquivo ‘usuario_lista.php’:

  1. <?
  2. # ===— Inclui o arquivo que faz a conexão com o banco de dados
  3. require(‘banco.php’);
  4. ?>
  5. <h1>Lista dos usuários do sistema</h1>
  6. <?
  7. # ===— Monto o comando SQL que faz a busca dos usuários
  8. $sql = ‘SELECT id, nome, email FROM usuarios’;
  9.  
  10. # ===— Executando o SQL
  11. $sql = mysql_query($sql);
  12.  
  13. # ===— Recupero o total de registros encontrados
  14. $total_de_usuarios = mysql_num_rows($sql);
  15.  
  16. # ===— Imprimo o total de registros
  17. echo "Total de usuário cadastrados no sistema: $total_de_usuarios <BR><BR>";
  18.  
  19. # ===— WHILE enquanto o comando for verdadeiro, ou seja, enquanto existir registros a serem exibidos.
  20. while ($linha = mysql_fetch_array($sql)) {
  21.    
  22.     # ===— Declaro as variáveis com os dados que estavam gravados no banco de dados
  23.     $nome  = $linha[‘nome’];
  24.     $email = $linha[‘email’];
  25.     $id    = $linha[‘id’];
  26.    
  27.     # ===— Imprimo o nome e e-mail
  28.     echo "<b>$nome</b> (<a href=’mailto:$email’>$email</a>) – <a href=’usuario_delete.php?id=".$id."’>Apagar</a><BR>";
  29.    
  30. }
  31. ?>

Bom, a primeira parte esta feita, agora precisamos programar o arquivo ‘usuario_deleta.php’. Faremos da seguinte forma:

  1. Receberemos o ID do usuário;
  2. Verificaremos se o ID é valido(numérico);
  3. Executaremos o código SQL que deleta o usuário do banco de dados;

Veja abaixo como ficou o script, comentado:

  1. <?
  2. # ===— Inclui o arquivo que faz a conexão com o banco de dados
  3. require(‘banco.php’);
  4.  
  5. # ===— Recupero o ID do usuario que foi passado via GET pela URL
  6. $id = $_GET[‘id’];
  7.  
  8. # ===— Precisamos verificar se o parametro que chegou via GET é valido, neste caso, para ser valido ele precisa apenas se um numero.
  9. if(is_numeric($id)){ // Veja a documentacao da funcao is_numeric(): http://br2.php.net/manual/pt_BR/function.is-numeric.php
  10.    
  11.     # ===— Monto o SQL pra fazer o delete.
  12.     $sql = "DELETE FROM usuarios WHERE id = $id";
  13.    
  14.     # ===— Executando o SQL
  15.     $sql = mysql_query($sql);
  16.    
  17.     if($sql){
  18.         # ===— Informa o sucesso da operacao
  19.         echo "Usuário deletado com sucesso!<BR><BR><a href=’usuario_lista.php’>Voltar</a>";
  20.     } else {
  21.         # ===— Reclama do erro e exibe na tela a mensagem
  22.         echo "Erro ao apagar usuário! – ".mysql_error()." <BR><BR><a href=’usuario_lista.php’>Voltar</a>";
  23.     }
  24.    
  25. } else {
  26.    
  27.     # ===— Reclama e da opçao de voltar
  28.     echo "Informe um ID válido!<BR><BR><a href=’usuario_lista.php’>Voltar</a>";
  29.    
  30. }
  31. ?>

Viram como é fácil? Claro que falta muita coisa, por exemplo, pedir confirmação antes de apagar… do tipo: “Realmente deseja apagar este usuário?”. Vou deixar isto para vocês fazerem, quem quiser implementar esta funcionalidade pode fazê-la e postar aqui no blog para compartilhar.. e se ficar com duvidas por favor me escreva.

Espero ter sido útil mais uma vez!

Um grande abraço!!

  1. 5 Comentários to “Mini Curso de PHP – Sistema de notícias (Deletar usuário) – Aula 13”

  2. beleza velho me da uma dica de um bom livro de php.
    obrigado.

    ReplyReply

    Por marcelo (3 comments) em 31/01/2009

  3. Boa tarde Oliveira tudo bom??

    Então, me diga uma coisa… vc ja tem algum conhecimento em PHP?

    Eu comprei um livro muito bom para estudar para tirar certificação. Ele trata de PHP 5…. fala muito de Orientação a Objetos…

    O link do livro no no Submarino é: http://www.submarino.com.br/produto/1/877859/?franq=267589

    Espero ter ajudado.. um grande abraço!

    ReplyReply

    Por Marcelo Sabadini (101 comments) em 31/01/2009

  4. Comigo, a exclusão ‘DELETE FROM usuarios WHERE id = $id’ só funcionou quando eu modifiquei da seguinte forma:

    ‘DELETE FROM usuarios WHERE id = ‘.$id.”;

    pois sempre retornava o erro: Unknown column ‘$id’ in ‘where clause’

    ReplyReply

    Por Rogerio J. Gentil (3 comments) em 28/08/2009

  5. Olá Rogério!

    Não funcionou pois variáveis dentro de aspas simples precisam ser concatenadas! :D

    vc pode trocar por aspas duplas ou fazer assim: ‘DELETE FROM usuarios WHERE id = ‘.$id.”

    Espero ter ajudado!! abraços!!!!

    ReplyReply

    Por Marcelo Sabadini (101 comments) em 28/08/2009

  1. 1 Trackback(s)

  2. 17/01/2009: Marcelo Sabadini » Mini Curso de PHP – Sistema de notícias (Atualizar usuário) - Aula 14

Coloque um Comentário

Links de comentários deveriam estar livres de nofollow.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes