CRUD com PHP, de forma simples e fácil

Compartilhar é se importar!

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

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 , 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, . 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…

Por 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.

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



12 thoughts on “CRUD com PHP, de forma simples e fácil

  1. Olá Claudeci,

    Excelente tutorial, funcionou direitinho em apenas uma página. Parabéns.

    Ficou faltando apenas uma confirmação de EXCLUSÃO de registros, por favor se tiver alguma dica ficarei muito agradecido.

    Obrigado.

  2. Bom dia Claudeci, parabéns pelo seu artigo.

    Peguei um projeto nos mesmos moldes do seu, e ao acrescentar dois campos como o data-entrada(DATE) e da-saida(DATE), comecei a perder muito tempo, pois não salvava o registro no banco de dados e eu não entendia o porque.
    Depois de bastante tempo na busca pela internet, revirando daqui e dali e não achava a resposta.

    Foi então que fiz um teste direto com o arquivo de conexão, adicionando a linha do sql de insert.
    Consegui descobrir que usando o campo data sem preencher, o registro não salva. Mesmo usando o Default como NULL.

    Já tentei de tudo e não consigo resultado positivo.
    Também já utilizei o datestamp mas ficou na mesma.

    Será possível vc me dar uma solução para isto.

  3. Bom dia Claudeci, tudo bem?

    Cara me ajuda, o trecho do Insert e do Update faz o cadastro.php não funcionar, nem abre, ai comento esse trecho e o cadastro.php abre normalmente. Por favor, será a versão do PHP, to usando a 5.4.16.

Leave a Reply

Your email address will not be published. Required fields are marked *