CRUD com PHP, de forma simples e fácil

Vejo como os iniciantes no desenvolvimento, ainda tem dificuldade para realizar as operações básicas em um registro do banco de dados, as chamadas CRUDs.

Neste tutorial de hoje, vamos discutir como fazer um CRUD com PHP, e banco de dados MySQL, de forma simples e fácil. Vamos aprender a inserir, alterar e excluir um registro da base.

Na verdade, vou dividir este tutorial em duas partes. A primeira, será esta que estamos trabalhando, onde veremos apenas como realizar a tarefa de inserção, alteração e exclusão do banco, e uma segunda, onde iremos melhorar este cadastro, falando mais sobre segurança, validação e etc.

Este tutorial, é de nível baixo, voltado para os amigos que estão começando.

Então, mãos às obras!

Bom. Antes de mais nada, para que possamos continuar nosso tutorial, vamos criar uma base de dados no MySQL. No meu caso, estou utilizando o WampServer como servidor.

Ah, mas por que, né? Simples. Menos dor de cabeça (rsrsrs), já vem tudo pronto, oh beleza.

Abra sua ferramenta de banco de dados (particularmente agrado muito do Heidisql), e execute o comando a seguir para criação da base (TutoCrudPhp), e sequencialmente, a criação de uma tabela Cliente.

Script de criação do banco MySQL

Script de criação da tabela no banco

Com a base criada, e a tabela também, vamos começar o desenvolvimento do código. Vamos iniciar, com a montagem do formulário HTML, que fará a captação dos dados inseridos pelo usuário no site.

Os campos existentes no formulário, serão basicamente os mesmos existentes na base, como exceção do campo de identificação, onde o mesmo será gerado automaticamente pela função AUTO_INCREMENT, informada por nós, na criação da tabela Cliente.

Abra seu editor de códigos preferido, seu queridinho, e vamos aos códigos.

Crie um novo documento, chamado cadastro.php.

No arquivo em questão, vamos criar um formulário HTML (como dito), e também, vamos criar uma tabela que irá mostrar todos os registros cadastrados na base de dados.

Já com o documento criado, vamos adicionar o seguinte código HTML dentro do corpo do documento, ou seja, entre as tags <body></body>, como mostrado a seguir:

Observe a simplicidade do nosso formulário. Feio, simples, e nada atrativo. Mas, como nosso intuito não é ganhar um concurso de estilos, vamos continuar com essa beleza interior.

Observe, que colocamos os campos editáveis, Nome, Email, Cidade e UF. Já o campo de identificação (Id), como dito, será gerado automaticamente quando houver um novo insert no banco.

Vamos trabalhar neste exemplo, em uma mesma página, realizando todas as ações, de acordo com o os dados recebidos, assim, será mais fácil a aplicação e o entendimento.

Bora fazer o negócio funcionar.

Vamos adicionar dois atributos à declaração do formulário, o action e o method. A action, especifica a url para onde os dados captados pelo form serão enviados, enquanto que o method, informa como os dados serão enviados. Em nosso caso, vamos focar no método POST.

Observe como fica a TAG de abertura do formulário.

Antes:

Depois:

Setamos a action como $_SERVER[“PHP_SELF”]. $_SERVER é um array contendo informação como cabeçalhos, paths, e localizações do script, enquanto que o índice PHP_SELF, é o nome do arquivo do script que está executando, relativa à raiz do documento. (Fonte: http://php.net/manual/pt_BR/reserved.variables.server.php), assim, resumindo, quando os dados inseridos no formulário submetido, os mesmo serão enviados à mesma página que realizou a requisição, neste caso, a página cadastro.php.

Sendo assim, vamos realizar a validação dos dados recebidos logo no início do nosso arquivo.

Antes do início do HTML, vamos adicionar um bloco PHP, responsável por realizar a validação.

O bloco inicia-se com uma condição (if), juntamente com uma função nativa do PHP, o isset, que não faz nada a mais que verificar a existência de uma informação, neste caso, os dados enviados via POST, retornando true, para existência, ou false para ausência, por isso, cada campo enviado, sua existência será validada.

Dentro desta condição (if) vamos adicionar outras validações, para que nosso exemplo, fique ao menos prático.

Vamos adicionar por exemplo, a validação para verificar se nossos dados estão preenchidos, utilizando a função empty() do PHP, que parte do mesmo conceito da isset, true para vazio, e false para preenchido.

Após a realização da validação, vamos realizar a inserção dos dados enviados no banco de dados.

Vamos utilizar neste exemplo, vamos utilizar a biblioteca MySQLi, explicada  no post Conectar no MySQL com PHP e mysqli_connect, onde foi exposto uma conexão com o banco de dados.

Voltando ao código em questão, vamos continuar alterando nosso bloco, agora, adicionando o comando que realiza a inserção no banco.

Antes, vamos incluir no início do arquivo, antes ainda deste bloco, o script de conexão, mostrado no post Conectar no MySQL com PHP e mysqli_connect.

Veja:

Agora sim, após incluir nossa conexão, vamos ao código de inserção dos dados.

Observe que além da conexão, foi inserido uma chamada à função mysqli_set_charset(), responsável por informar à conexão atual, que os dados serão trabalhados no forma UTF-8.

Veja a seguir, o script completo até o momento:

Primeira operação: Inserção dos dados.

No script acima, agora temos, algumas variáveis que recebem os dados POST enviados, um Prepared Statements, que será responsável por trabalhar os dados enviados, de forma a garantir a perfeita inserção dos mesmos, mediante passagem de parâmetros (os ??? são onde os parâmetros serão incluídos), que serão informados no bind_param(), que você pode conhecer mais neste link.

Após isso, apenas mandamos executar a instrução, efetivando a inserção dos dados na tabela cliente.

Para teste, preencha os campos no formulário, e clique em cadastrar. Veja que os dados serão corretamente inseridos no banco.

Veja que criamos duas variáveis extras, $erro e $sucesso. Adicione o código a seguir, logo após a tab de abertura da body do documento, para podermos informar os erros e sucessos obtidos em nosso script.

Neste ponto, como já percebeu, já estamos realizando a inserção dos dados no banco, agora, vamos criar o script para alteração.

Vamos criar uma pequena lista de registros, para podermos ver os registros existentes no banco.

Abaixo do formulário que criamos, vamos adicionar o código a seguir.

Pode colocar logo após a tag de fechamento do form, </form>.

Agora, com esse código que colocamos, vamos editar um registro. Para tal, vamos utilizar uma passagem de parametro do tipo GET, onde vamos passaro código do nosso registro a ser editado.

Quando recebermos esse código, vamos consultar o registro no banco, e mostrar os dados no formulário.

A partir daí, ao clicar no botão, os dados serão alterados.

Vamos alterar o código que já fizemos até o momento, incluindo algumas variáveis, alterando outras, de forma que possamos utilizar o mesmo formulário html, tanto para inserir, quanto para alterar. Veja a seguir.

Observe com cuidado as inclusões/alterações que fizemos.

Neste ponto, já nos é possível, incluir dados (quando não estamos passando id nenhum) ou alterá-los (quando for passado id de registro).

Agora, o mais simples das ações, o excluir (simples em nosso exemplo. Há casos complexos dependendo do tipo de relação). Vamos alterar a parte do link Editar, e incluir um simples para excluir do registro.

Não vamos entrar muito em detalhes de validação, e etc. Deixarei isso para outro tutorial.

Como já temos um blog, realizando a validação do id, caso o mesmo exista, vamos alterá-lo para podermos utilizar na exclusão do registro. Vamos fazer o seguinte, vamos adicionar uma condição interna, verificando a existência do parâmetro del =true, caso exista, fará a exclusão.

Veja.

Altere este bloco…

 

Para este…

Agora, lá no final do arquivo, onde colocamos um link Editar, vamos adicionar outro ao lado, com o texto Excluir, passando mais um parâmetro, o parâmetro del.

Ufa. Até que enfim. Aqui, já temos uma noção de como criar um CRUD básico em PHP, utilizando a biblioteca MySQLi.

Veja que não entramos em questões de boas práticas, detalhes de validação e outros. A intenção é realmente apresentar um conceito básico de como criar um CRUD com PHP.

Espero que tenha ajudado.

Dúvidas, sugestões, reclamações e claro, elogios, são muito bem vindos. Deixe-os no espaço para comentários ao final da página.

Grande abraço. Até o próximo.

 

Autor(a):
Claudeci Goularte
Formado em Análise e Desenvolvimento de Sistemas pela Faculdade de Filosofia, Ciências e Letras Santa Marcelina, e pós-graduado em Arquitetura de Software, pelo Instituto de Gestão em Tecnologia da Informação, o IGTI. Sou desenvolvedor de sistemas desde 2006, com ampla experiência em PHP, MySQL, C#, SQLServer, CSS, HTML, JavaScrit, JQuery, C#, SqlServer, entre outras. Amante da profissão.

10 pensamentos sobre “CRUD com PHP, de forma simples e fácil

  1. Mesmo não sendo um script usando OO e nem o MVC, eu separaria toda essas lógicas do HTML. Dessa forma fica um código muito confuso e de difícil manutenção.

  2. MVC ainda acho uma falácia. Dependendo do caso é querer matar mosquito usando canhão. Para aplicações simples, coisas simples.

Deixe uma resposta

Seu endereço de e-mail não será publicado. Campos marcados são obrigatórios *