Edição – Sistema de Cadastro com PHP + PDO e MySQL

Edição - Sistema de Cadastro com PHP + PDO e MySQLNo post de hoje vou demonstrar como construir a página de edição de registros, dando continuidade na série de posts sobre sistema de cadastro com PHP + PDO e MySQL. Nos posts anteriores já construímos a página para inclusão de clientes e a página para consulta de clientes.

Na minha opinião a funcionalidade de edição de registros geralmente envolve mais complexidade, não é nada fora do comum mas temos que ter atenção, principalmente quando estamos trabalhando com upload de imagens. Nesse sistema podemos enviar a foto do cliente durante a inclusão, quando carregamos a página de edição temos que exibir essa foto e dar a opção para o usuário trocar essa imagem caso queira, nesse ponto temos que ter atenção.

Outros posts que podem interessar:

Consulta – Sistema de Cadastro com PHP + PDO e MySQL

Inclusão – Sistema de Cadastro com PHP + PDO e MySQL

Exclusão – Sistema de Cadastro com PHP + PDO e MySQL

 

Todos os scripts que serão postados aqui são praticamente idênticos aos postados anteriormente, mas como venho lembrando desde de o começo dessa série de posts a medida que estamos construindo o sistema estou acrescentando funcionalidades nos scripts, nesse post foram adicionadas novas funcionalidade no script “action_cliente.php“.

Script do Banco de Dados

A estrutura da tabela se mantém idêntica desde  o primeiro post:

 

Formulário para Edição dos Dados

O layout da página de edição é idêntico ao da página de inclusão, a diferença é que agora recebemos um “id” via GET que foi enviado após o usuário clicar no botão “Editar” na página de consulta de clientes, com esse id temos que carregar os dados do cliente nos respectivos campos do formulário e também a foto no elemento <img>.

O “id” do cliente foi passado via GET e fazemos uma validação básica, se for válido então executamos uma consulta com parâmetro via PDO  para capturar os dados do cliente, se a consulta retornar registros o próximo passo é acertar o formato da data de nascimento, como temos um campo “data_nascimento” do tipo DATE (YYYY/MM/DD) é necessário formatar essa data para o formato nacional (DD/MM/YYYY).

No corpo da página verifico se a consulta retornou vazia “if(empty($cliente)):”, caso sim apenas exibimos uma mensagem para o usuário “Cliente não encontrado”, senão carregamos a foto e os valores nos inputs do formulário.

Temos 3 campos “hidden”, sendo o primeiro com o valor da ação (editar) que vamos executar no script “action_cliente.php“, o segundo contendo o id do cliente para instrução de UPDATE e o terceiro é o nome da foto gravada atualmente no banco de dados. Caso o usuário decida trocar a foto por outra temos que excluir o arquivo antigo na pasta, por isso é necessário saber o nome da imagem.

Foi usado o script de conexão PHP seguindo o padrão Singleton.

Caso o usuário queira cancelar a edição e voltar para listagem de clientes, basta pressionar o link “Cancelar“.

 

Folha de estilo CSS customizada

A folha de estilo “custom.css” não sofreu alteração, lembrando que a maior parte das regras de estilização como já citado vem do “bootstrap.min.css“.

Post relacionado:  CRUD usando a biblioteca PDO no PHP e MySQL

 

Script JavaScript com Validação, Máscaras e Load de Imagem

O script “custom.js” não sofreu alterações, pois como a estrutura do formulário é a mesma de inclusão podemos aproveitar as mesmas regras de validação, máscaras e a função para carregar a imagem de upload.

 

Script PHP para Edição dos Dados

No script “action_cliente.php” foram adicionadas linhas para executar também a edição dos dados, observem que agora temos outra condição “if ($acao == ‘editar’):” verificando se a ação solicitada é “editar”, esse valor será passado no campo hidden do formulário que foi explicado acima.

Post relacionado:  Paginação com MySQL no PHP

Dentro dessa condição de edição verifico se foi enviado um upload de foto, isso significa que a foto do cliente está sendo alterada, então primeiro excluo a imagem da pasta com base no nome da foto_atual passado pelo formulário e depois processo o upload da nova foto, semelhante ao que foi feito na inclusão.

Caso não seja enviado um upload o fluxo entra na lógica do “else:” e simplesmente mantenho o mesmo nome da foto “$nome_foto = $foto_atual;” e envio esse valor para instrução UPDATE.

Após ser executada a instrução SQL exibo uma mensagem de sucesso e redireciono o usuário para a página “index.php” aguardando 3 segundos.

 

Resultado Final

Caso o id do cliente passado como parâmetro não seja encontrado:

mensagem cliente não encontrado

 

Se o usuário clicar no botão “Editar” de um cliente ele será redirecionado para página de edição:

edição cliente

 

Carregando dados para edição do cliente com id válido:

dados do cliente para edição

 

Após gravar a edição será exibida a mensagem de sucesso:

mensagem de sucesso após edição

Bom pessoal, chegando ao final de mais um post da série sobre sistema de cadastro com PHP, hoje demonstrei como construir um formulário para edição dos dados do cliente, não tivemos nada muito diferente da inclusão em termos de layout HTML somente na lógica PHP.

O próximo post será o último dessa série e vou demonstrar como excluir clientes do banco de dados.

Link para Download do projeto final com INCLUSÃO, EDIÇÃO, EXCLUSÃO E CONSULTA. (6032 downloads)

Até a próxima ….

Tags:,
Show Buttons
Hide Buttons