CRUD Com Bootstrap, PHP & MySQL - Parte IV - Web Dev Academy
CRUD Com Bootstrap, PHP & MySQL - Parte IV - Web Dev Academy
CRUD Com Bootstrap, PHP & MySQL - Parte IV - Web Dev Academy
Esta é uma série de tutoriais, na qual você vai aprender uma forma eficaz
de implementar um sistema de CRUD completo, usando o Bootstrap no
front-end e PHP com MySQL no back end.
Agora, neste tutorial, você vai ver como criar os arquivos funções para
implementar os formulários de inserção e a edição no cadastro de
clientes. Além disso, vamos criar as funções de persistência dessas
informações no banco de dados.
Ao final deste tutorial, você vai ter uma estrutura básica de cadastro de
clientes para reaproveitar no projeto, na qual o usuário vai poder
preencher os dados do cadastro de clientes.
Antes de Começar
Eu vou assumir que você já está com o seu ambiente de desenvolvimento
funcionando, e que já passou pelas partes anteriores desta série.
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 1/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
1 <?php
2 /**
3 * Cadastro de Clientes
4 */
5 function add() {
6
7 if (!empty($_POST['customer'])) {
8
9 $today =
10 date_create('now', new DateTimeZone('America/Sao_Paulo'));
11
12 $customer = $_POST['customer'];
13 $customer['modified'] = $customer['created'] = $today->format("Y-m-d
14
15 save('customers', $customer);
16 header('location: index.php');
17 }
18 }
1 <?php
2 require_once('functions.php');
3 add();
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 2/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
4 ?>
5
6 <?php include(HEADER_TEMPLATE); ?>
7
8 <h2>Novo Cliente</h2>
9
10 <form action="add.php" method="post">
13 <div class="row">
14 <div class="form-group col-md-7">
23
24 <div class="form-group col-md-2">
25 <label for="campo3">Data de Nascimento</label>
26 <input type="text" class="form-control" name="customer['birthdate']
27 </div>
28 </div>
29
30 <div class="row">
34 </div>
35
36 <div class="form-group col-md-3">
37 <label for="campo2">Bairro</label>
38 <input type="text" class="form-control" name="customer['hood']">
39 </div>
40
41 <div class="form-group col-md-2">
42 <label for="campo3">CEP</label>
43 <input type="text" class="form-control" name="customer['zip_code']"
44 </div>
45
46 <div class="form-group col-md-2">
50 </div>
51
52 <div class="row">
56 </div>
57
58 <div class="form-group col-md-2">
59 <label for="campo2">Telefone</label>
62
63 <div class="form-group col-md-2">
64 <label for="campo3">Celular</label>
66 </div>
67
68 <div class="form-group col-md-1">
69 <label for="campo3">UF</label>
71 </div>
72
73 <div class="form-group col-md-2">
76 </div>
77
78 <div class="form-group col-md-2">
79 <label for="campo3">UF</label>
80 <input type="text" class="form-control">
81 </div>
82 </div>
83
84 <div id="actions" class="row">
85 <div class="col-md-12">
88 </div>
89 </div>
90 </form>
91
92 <?php include(FOOTER_TEMPLATE); ?>
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 5/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
1 <?php
2
3 /**
4 * Insere um registro no BD
5 */
6 function save($table = null, $data = null) {
7
8 $database = open_database();
9
10 $columns = null;
11 $values = null;
12
13 //print_r($data);
14
15 foreach ($data as $key => $value) {
19
20 // remove a ultima virgula
21 $columns = rtrim($columns, ',');
22 $values = rtrim($values, ',');
23
24 $sql = "INSERT INTO " . $table . "($columns)" . " VALUES " . "($values)
25
26 try {
27 $database->query($sql);
28
29 $_SESSION['message'] = 'Registro cadastrado com sucesso.';
30 $_SESSION['type'] = 'success';
31
32 } catch (Exception $e) {
33
34 $_SESSION['message'] = 'Nao foi possivel realizar a operacao.';
35 $_SESSION['type'] = 'danger';
36 }
37
38 close_database($database);
39 }
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 6/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
1 <?php
2
3 /**
4 * Atualizacao/Edicao de Cliente
5 */
6 function edit() {
7
8 $now = date_create('now', new DateTimeZone('America/Sao_Paulo'));
9
10 if (isset($_GET['id'])) {
11
12 $id = $_GET['id'];
13
14 if (isset($_POST['customer'])) {
15
16 $customer = $_POST['customer'];
18
19 update('customers', $id, $customer);
20 header('location: index.php');
21 } else {
22
23 global $customer;
25 }
26 } else {
27 header('location: index.php');
28 }
29 }
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 7/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
1 <?php
2 require_once('functions.php');
3 edit();
4 ?>
5
6 <?php include(HEADER_TEMPLATE); ?>
7
8 <h2>Atualizar Cliente</h2>
9
10 <form action="edit.php?id=<?php echo $customer['id']; ?>" method="post">
11 <hr />
12 <div class="row">
13 <div class="form-group col-md-7">
14 <label for="name">Nome / Razão Social</label>
16 </div>
17
18 <div class="form-group col-md-3">
26 </div>
27 </div>
28 <div class="row">
33
34 <div class="form-group col-md-3">
35 <label for="campo2">Bairro</label>
37 </div>
38
39 <div class="form-group col-md-2">
40 <label for="campo3">CEP</label>
41 <input type="text" class="form-control" name="customer['zip_code']"
42 </div>
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 8/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
42 </div>
43
44 <div class="form-group col-md-2">
47 </div>
48 </div>
49 <div class="row">
51 <label for="campo1">Município</label>
53 </div>
54
55 <div class="form-group col-md-2">
56 <label for="campo2">Telefone</label>
57 <input type="text" class="form-control" name="customer['phone']" va
58 </div>
59
60 <div class="form-group col-md-2">
61 <label for="campo3">Celular</label>
63 </div>
64
65 <div class="form-group col-md-1">
66 <label for="campo3">UF</label>
68 </div>
69
70 <div class="form-group col-md-2">
73 </div>
74
75 <div class="form-group col-md-2">
76 <label for="campo3">UF</label>
77 <input type="text" class="form-control">
78 </div>
79 </div>
80 <div id="actions" class="row">
81 <div class="col-md-12">
84 </div>
85 </div>
86 </form>
87
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 9/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 10/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
1 <?php
2 /**
6
7 $database = open_database();
8
9 $items = null;
10
11 foreach ($data as $key => $value) {
14
15 // remove a ultima virgula
17
18 $sql = "UPDATE " . $table;
21
22 try {
23 $database->query($sql);
24
25 $_SESSION['message'] = 'Registro atualizado com sucesso.';
26 $_SESSION['type'] = 'success';
27
28 } catch (Exception $e) {
29
30 $_SESSION['message'] = 'Nao foi possivel realizar a operacao.';
31 $_SESSION['type'] = 'danger';
32 }
33
34 close_database($database);
35 }
Próximos Passos…
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 11/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
Tutoriais
Bootstrap, PHP
Participe da discussão...
Nome
Nilton
△ ▽ • Responder • Compartilhar ›
Mas a edição não está gravando. Tentei imprimir as variáveis na função edit()
e percebi que o if (isset($_POST['customer'])) nunca é satisfeito. Segue o link
dos código.
https://paste.ofcode.org/89... (functions.php)
https://paste.ofcode.org/hm... (edit.php)
△ ▽ • Responder • Compartilhar ›
novamente.
O action do form está direcionado para ele mesmo <form action="edit.php?
id=<?php echo $customer['Id']; ?>" method="post"> e mesmo assim não
roda a função.
△ ▽ • Responder • Compartilhar ›
Obrigado, Flávio!
Espero que isso seja útil no seu aprendizado e nos seus projetos.
△ ▽ • Responder • Compartilhar ›
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 15/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
Desde já agradeço.
Um abraço
△ ▽ • Responder • Compartilhar ›
Abs.
Ruan
△ ▽ • Responder • Compartilhar ›
△ ▽ • Responder • Compartilhar ›
Para criar um relatório PDF, você precisa usar alguma biblioteca que
faça isso e colocar nesse CRUD. Outra opção é usar o modo de
impressão do navegador mesmo.
△ ▽ • Responder • Compartilhar ›
Abs.
Ruan
△ ▽ • Responder • Compartilhar ›
if (isset($_POST['paciente'])) {
$paciente = $_POST['paciente'];
//$paciente['modified'] = $now->format("Y-m-d H:i:s");
print_r($id);
print_r($paciente);
global $paciente;
$paciente = find('tb_paciente', $id);
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 17/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
print_r("entrando aqui");
print_r($paciente);
}
} else {
header('location: index.php');
}
△ ▽ • Responder • Compartilhar ›
<
O erro está na função save(), quando vai inserir os valores com SQL: Está
faltando espaços. Apenas isto. Segue:
$sql = "INSERT INTO " . $table . " ($columns) " . " VALUES " . "($values);";
Pelo menos no meu era isso. Para quem estiver com outro problema,
experimente dar print_r($columns) e print_r($values) antes da apresentar a
variável $sql e execute a função no add.php clicando em Salvar, vendo o que
está inserindo e se a quantidade de campos da tabela batem com a
quantidade de parâmetros. Senão, faça bater. No meu, também não batia.
Pois eu segui o tutorial fazendo já o meu projeto, que são campos diferentes.
Então, eu sem querer acabei copiando campos do tutor que não existiam na
minha tabela SQL.
Se mesmo assim houver outro erro, vão colocando print_r($variável) sempre
depois da variável receber algum valor e teste direto no sistema web
procurando o erro.
Espero ter ajudado!!
Abraço.
△ ▽ • Responder • Compartilhar ›
Favor Alguém pode me ajudar, por que o código está bom bem organizado,
mas está faltando algo, como não sou mestre em PHP, estou começando
agora..
Aguardo a respostas de amigos..
Grato,
Marcos
△ ▽ • Responder • Compartilhar ›
if ($result) {
if ($result->num_rows > 0) {
$found = $result->fetch_all(MYSQLI_ASSOC);
}
}
Aqui o que faço? Aqui dá erro no mysqli mesmo, não dá pra
debugar rsrsrs... pesquisei aqui e ainda não encontrei o erro.
Esta linha que vem o $found vem comentada no código do
tutorial.
△ ▽ • Responder • Compartilhar ›
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 20/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
TAGS
Bootstrap CRUD Drupal HTML & CSS JavaScript jQuery PHP SQL Tooling
WordPress
MAIS ACESSADOS
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 21/21