ScriptDicas

Como criar um sistema de cadastro de clientes em PHP e MySQL

21 de dez. de 2022

Neste tutorial iremos criar um sistema completo de cadastro de clientes usando a linguagem de programação PHP e o banco de dados MySQL.

Primeiro de tudo, para funcionar o PHP é necessário um servidor, estou supondo que você já possuí um servidor instalado na sua máquina como o XAMPP ou o WAMP e o gerenciador phpMyAdmin.

Como criar o banco de dados e a tabela clientes

O primeiro passo agora é criar um banco de dados (se você usa phpMyAdmin clique em Novo e digite um nome ex: cadastroclientes), logo em seguida precisamos criar a tabela clientes onde estarão armazenados todos os registros dos clientes, depois vá na aba SQL e criaremos o seguinte código para gerar a tabela clientes:

CREATE TABLE clientes (
    id int NOT NULL AUTO_INCREMENT,
    nome text NULL,
    endereco text NULL,
    telefone text NULL,
    PRIMARY KEY (id)
);

Como podemos observar nesta tabela teremos 4 colunas que são o id, nome, endereço e telefone de cada cliente.

Após ter gerado o código da tabela clientes, criaremos a nossa página principal do sistema, chamaremos de index.php:

Para criar a página, seria recomendado saber como fazer uma página em HTML.

<!DOCTYPE html>  
 <html>  
 <head>  
   <title>Sistema de Cadastro de Clientes</title>  
 </head>  
 <body>  
  <form method="POST">
    <label>Nome</label>
    <input type="text" name="nome">
    <label>Endereço</label>
    <input type="text" name="endereco">
    <label>Telefone</label>
    <input type="text" name="telefone">
    <input type="submit" value="Cadastrar">
  </form>
 </body>  
</html>

Até aqui escrevemos apenas HTML5, agora vamos partir para o PHP, usaremos a extensão PDO para inserir no banco de dados e trazer os clientes, veja o seguinte código:

<?php
// Verifica se a requisição é do tipo POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $nome = $_POST['nome'];
  $endereco = $_POST['endereco'];
  $telefone = $_POST['telefone'];
  // Verifica se os campos foram preenchidos
  if($nome && $endereco && $telefone) {
    $conexaoBanco = new PDO('mysql:host=localhost;dbname=cadastroclientes', 'root','');
    $dadosDoCliente = array('nome' => $nome, 'endereco' => $endereco, 'telefone' => $telefone);
    $conexaoBanco->prepare('INSERT INTO clientes (nome, endereco, telefone) VALUES (:nome, :endereco, :telefone)')->execute($dadosDoCliente);
    echo "Cliente cadastrado com sucesso!";
  } else {
    echo "Existem campos vazios!";
  }
}
?>

Em resumo, obtivemos os dados do cliente via método POST, nunca use GET, pois isso prejudica a segurança do sistema. Após isso, fazemos a conexão com o banco de dados e realizamos a inserção do cliente. Atenção! para a conexão com o banco de dados funcionar, é necessário que o dbname seja o nome do seu banco de dados, no meu caso é cadastroclientes, já o usuário é root e senha vazia.

Agora que conseguimos cadastrar um novo cliente, precisamos mostrar na página os clientes já cadastrados no banco como é demonstrado abaixo:

<label>Lista de Clientes:</label></br>
<?php
    $conexaoBanco = new PDO('mysql:host=localhost;dbname=cadastroclientes', 'root','');
    $sql = "SELECT * FROM clientes";
    $clientes = $conexaoBanco->query($sql);
    $clientes = $clientes->fetchAll();
    foreach ($clientes as $cliente) {
      echo "Nome: " . $cliente['nome'] . " | Endereço: " . $cliente['endereco'] . " | Telefone: " . $cliente['telefone'] . "</br>";
    }
 ?>

Arquivo index.php

Pronto! Agora já podemos listar todos os clientes e cadastrar novos, segue abaixo o arquivo index.php completo:

<?php

// Verifica se a requisição é do tipo POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $nome = $_POST['nome'];
  $endereco = $_POST['endereco'];
  $telefone = $_POST['telefone'];

  // Verifica se os campos foram preenchidos
  if($nome && $endereco && $telefone) {
    $conexaoBanco = new PDO('mysql:host=localhost;dbname=cadastroclientes', 'root','');
    $dadosDoCliente = array('nome' => $nome, 'endereco' => $endereco, 'telefone' => $telefone);
    $conexaoBanco->prepare('INSERT INTO clientes (nome, endereco, telefone) VALUES (:nome, :endereco, :telefone)')->execute($dadosDoCliente);
    echo "Cliente cadastrado com sucesso!";
  } else {
    echo "Existem campos vazios!";
  }
}

?>
<!DOCTYPE html>  
 <html>  
 <head>  
   <title>Sistema de Cadastro de Clientes</title>  
 </head>  
 <body>  
  <form method="POST">
    <label>Nome</label>
    <input type="text" name="nome">
    <label>Endereço</label>
    <input type="text" name="endereco">
    <label>Telefone</label>
    <input type="text" name="telefone">
    <input type="submit" value="Cadastrar">
  </form>
  </br>
  <label>Lista de Clientes:</label></br>
  <?php
    $conexaoBanco = new PDO('mysql:host=localhost;dbname=cadastroclientes', 'root','');
    $sql = "SELECT * FROM clientes";
    $clientes = $conexaoBanco->query($sql);
    $clientes = $clientes->fetchAll();
    foreach ($clientes as $cliente) {
      echo "Nome: " . $cliente['nome'] . " | Endereço: " . $cliente['endereco'] . " | Telefone: " . $cliente['telefone'] . "</br>";
    }
  ?>
 </body>  
</html>