Você está na página 1de 21

17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy

CRUD com Bootstrap, PHP & MySQL – Parte IV

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.

Aviso: Devido a outros projetos, vou adicionar as explicações de cada


código aos poucos, durante a semana.

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

Se você ainda não estiver com o ambiente pronto, é só ver a introdução


desta série para instalar os pré-requisitos, e criar o BD.

Este tutorial é um pouco extenso, e tem alguns códigos mais complexos.


Separe um tempo para entender bem, e caso não entenda alguma parte, é
só perguntar nos comentários.

Passo 1: Crie a Função de Cadastro


Voltando à pasta “customers“, adicione estas a função de cadastro no
arquivo functions.php:

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 }

functions.php hosted with ❤ by GitHub view raw

Passo 2: Crie o Formulário de Cadastro


Agora, crie um arquivo chamado add.php na pasta customers. Esse
arquivo vai ter a marcação do formulário de cadastro do cliente:

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">

11 <!-- area de campos do form -->


12 <hr />

13 <div class="row">
14 <div class="form-group col-md-7">

15 <label for="name">Nome / Razão Social</label>

16 <input type="text" class="form-control" name="customer['name']">


17 </div>
18
19 <div class="form-group col-md-3">

20 <label for="campo2">CNPJ / CPF</label>


21 <input type="text" class="form-control" name="customer['cpf_cnpj']"
22 </div>

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">

31 <div class="form-group col-md-5">


32 <label for="campo1">Endereço</label>

33 <input type="text" class="form-control" name="customer['address']">

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">

47 <label for="campo3">Data de Cadastro</label>

48 <input type="text" class="form-control" name="customer['created']"


49 </div>
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 3/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy

50 </div>

51
52 <div class="row">

53 <div class="form-group col-md-3">


54 <label for="campo1">Município</label>

55 <input type="text" class="form-control" name="customer['city']">

56 </div>
57
58 <div class="form-group col-md-2">

59 <label for="campo2">Telefone</label>

60 <input type="text" class="form-control" name="customer['phone']">


61 </div>

62
63 <div class="form-group col-md-2">
64 <label for="campo3">Celular</label>

65 <input type="text" class="form-control" name="customer['mobile']">

66 </div>

67
68 <div class="form-group col-md-1">

69 <label for="campo3">UF</label>

70 <input type="text" class="form-control" name="customer['state']">

71 </div>

72
73 <div class="form-group col-md-2">

74 <label for="campo3">Inscrição Estadual</label>

75 <input type="text" class="form-control" name="customer['ie']">

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">

86 <button type="submit" class="btn btn-primary">Salvar</button>

87 <a href="index.php" class="btn btn-default">Cancelar</a>

88 </div>

89 </div>

90 </form>

91
92 <?php include(FOOTER_TEMPLATE); ?>

add.php hosted with ❤ by GitHub view raw


https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 4/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy

Passo 3: Crie a Função de Persistência no BD


No arquivo database.php, implemente a função que vai inserir um registro
no banco de dados:

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) {

16 $columns .= trim($key, "'") . ",";


17 $values .= "'$value',";
18 }

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 }

database.php hosted with ❤ by GitHub view raw

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

Passo 4: Crie a Função de Edição/Atualização


Agora, vamos fazer a parte de edição, ou atualização dos clientes.

O primeiro passo é implementar a função edit() no módulo de clientes, ou


seja, no arquivo functions.php:

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'];

17 $customer['modified'] = $now->format("Y-m-d H:i:s");

18
19 update('customers', $id, $customer);

20 header('location: index.php');

21 } else {

22
23 global $customer;

24 $customer = find('customers', $id);

25 }

26 } else {

27 header('location: index.php');

28 }

29 }

functions.php hosted with ❤ by GitHub view raw

Passo 5: Implemente o Formulário de Edição

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

Agora, crie um arquivo chamado edit.php na pasta customers. Esse


arquivo vai ter a marcação do formulário de edição do cliente, que é
quase igual à do cadastro:

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>

15 <input type="text" class="form-control" name="customer['name']" val

16 </div>
17
18 <div class="form-group col-md-3">

19 <label for="campo2">CNPJ / CPF</label>

20 <input type="text" class="form-control" name="customer['cpf_cnpj']"


21 </div>
22
23 <div class="form-group col-md-2">
24 <label for="campo3">Data de Nascimento</label>
25 <input type="text" class="form-control" name="customer['birthdate']

26 </div>

27 </div>
28 <div class="row">

29 <div class="form-group col-md-5">


30 <label for="campo1">Endereço</label>

31 <input type="text" class="form-control" name="customer['address']"


32 </div>

33
34 <div class="form-group col-md-3">
35 <label for="campo2">Bairro</label>

36 <input type="text" class="form-control" name="customer['hood']" val

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">

45 <label for="campo3">Data de Cadastro</label>


46 <input type="text" class="form-control" name="customer['created']"

47 </div>

48 </div>
49 <div class="row">

50 <div class="form-group col-md-3">

51 <label for="campo1">Município</label>

52 <input type="text" class="form-control" name="customer['city']" val

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>

62 <input type="text" class="form-control" name="customer['mobile']" v

63 </div>
64
65 <div class="form-group col-md-1">

66 <label for="campo3">UF</label>

67 <input type="text" class="form-control" name="customer['state']" va

68 </div>

69
70 <div class="form-group col-md-2">

71 <label for="campo3">Inscrição Estadual</label>

72 <input type="text" class="form-control" name="customer['ie']" value

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">

82 <button type="submit" class="btn btn-primary">Salvar</button>


83 <a href="index.php" class="btn btn-default">Cancelar</a>

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

88 <?php include(FOOTER_TEMPLATE); ?>

edit.php hosted with ❤ by GitHub view raw

Passo 6: Crie a Função de Atualização no BD


E no arquivo database.php, implemente a função que faz a atualização de
um registro no banco de dados:

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 /**

3 * Atualiza um registro em uma tabela, por ID


4 */

5 function update($table = null, $id = 0, $data = null) {

6
7 $database = open_database();

8
9 $items = null;
10
11 foreach ($data as $key => $value) {

12 $items .= trim($key, "'") . "='$value',";


13 }

14
15 // remove a ultima virgula

16 $items = rtrim($items, ',');

17
18 $sql = "UPDATE " . $table;

19 $sql .= " SET $items";

20 $sql .= " WHERE id=" . $id . ";";

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 }

database.php hosted with ❤ by GitHub view raw

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

Há várias melhorias possíveis nesse código. Mas, como este é um tutorial


para você começar a entender o CRUD, aos poucos será possível
adicionar outras funcionalidades e melhorar a segurança e o
reaproveitamento de funções.

No próximo tutorial, vamos ver a parte de exibição dos detalhes de um


registro (Details).

Publicado por Ruan Carvalho


Ruan é especialista em Front-end e trabalha com Desenvolvimento Web desde 2007.

 Ver todos os posts por Ruan Carvalho

Tutoriais

Bootstrap, PHP

74 Comentários Web Dev Academy 🔒 Disqus' Privacy Policy 


1 Entrar

 Recomendar t Tweet f Compartilhar Ordenar por Mais votados

Participe da discussão...

FAZER LOGIN COM


OU REGISTRE-SE NO DISQUS ?

Nome

Luís henrique • 3 anos atrás


Consegui fazer deu tudo certo mas quando eu adiciono novo cadastro ele não
adiciona e só volta para a index.php alguém poderia ajudar obrigado
2△ ▽ 1 • Responder • Compartilhar ›

Sir2015 • um ano atrás


Boa noite,
Segui todo o passo a passo até a última aula, mas não consigo resolver este
erro:
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 12/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy

Notice: Trying to get property 'num_rows' of non-object in


C:\wamp64\www\myprojeto\inc\database.php on line 27

Estou travado nesta parte aqui, alguém para me passar a solução.


Ficarei muito grato.

Nilton
△ ▽ • Responder • Compartilhar ›

Ruan Carvalho Mod > Sir2015 • um ano atrás

Você tem que verificar se o $result tá vindo com dados.

o num_rows é a quantidade de linhas no resultado da consulta ao


banco.
se a consulta não retornou, o $result não terá nada.
△ ▽ • Responder • Compartilhar ›

Sir2015 > Ruan Carvalho • um ano atrás


Tenho registros no bd, mas não retorna nada. E surge este erro
que postei na pergunta.
△ ▽ • Responder • Compartilhar ›

Matheus Saraiva • 3 anos atrás


Esse tuto de dois anos atrás está me ajudando hoje.

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 ›

Ailton Souza • 3 anos atrás


Olá , estou tendo problemas com a inserção, e achei o problema , está no
campo date, ele esta inserindo os dados apenas quando coloco o formato
americano (yyyy-mm-dd), como colocar pra aceitar o formato padrão
brasileiro? (dd-mm-aaaa)
△ ▽ • Responder • Compartilhar ›

Ailton Souza > Ailton Souza • 3 anos atrás


ja resolvi, o problema era no tipo text do html , troquei para "date"
△ ▽ • Responder • Compartilhar ›

José Luis Picelli • 3 anos atrás


Ruam, boa tarde.
A primeira vez que entro no formulário de edição vindo de index.php ele
executa a função edit(). Porém depois do formulário carregado, altero os
dados que preciso e quando clico em salvar, ele não executa a função edit()
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 13/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy

novamente.
O action do form está direcionado para ele mesmo <form action="edit.php?
id=&lt;?php echo $customer['Id']; ?&gt;" method="post"> e mesmo assim não
roda a função.
△ ▽ • Responder • Compartilhar ›

leandro • 3 anos atrás • edited


Bom dia Sr. Ruam. Por favor fiz tudo como você manda e esta tudo
funcionando menos a gravação de dados. Quando coloco os dados
diretamente na tabela sql ok tudo certo mas quando tento implementar
através do formulário ele não grava. E olha que tô batalhando pra ver o que
pode estar acontecendo aja vista esta tudo funcionando. Podes me ajudar?
△ ▽ • Responder • Compartilhar ›

João Paulo Moraes > leandro • 3 anos atrás


Tive o mesmo problema, depois de varios testes descobri que o
problema é oq tu ta enviando pro banco, tem muitos campos que
aceitam quantidade limitada de caracteres e com o tipo de campo
restringido, faça o teste, tente adicionar exatamente o registro do
adcionado como exemplo.
△ ▽ • Responder • Compartilhar ›

leandro > João Paulo Moraes • 3 anos atrás


João Paulo Moraes muito obrigado por sua atenção. Muito
agradecido mesmo.
△ ▽ • Responder • Compartilhar ›

Flávio • 4 anos atrás


Gostaria de parabenizar Ruan Carvalho pelo tutorial, sou iniciante na
programação e também em php e está me ajudando muito. Obrigado por
compartilhar conhecimento, espero um dia poder ajudar a outros como você
está fazendo.
△ ▽ • Responder • Compartilhar ›

Ruan Carvalho Mod > Flávio • 4 anos atrás

Obrigado, Flávio!
Espero que isso seja útil no seu aprendizado e nos seus projetos.
△ ▽ • Responder • Compartilhar ›

Flávio • 4 anos atrás


Consegui incluir um novo cadastro, segui o código exatamente como está no
tutorial.
△ ▽ • Responder • Compartilhar ›

Albuquerque • 4 anos atrás


O formulário de inclusão não funciona. Já verifiquei e está tudo conforme o
tutorial. Tentei achar onde está o erro, mas não consegui. Se alguém
conseguiu fazer funcionar o formulário de inclusão posta aí por favor.
Obrigado!
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 14/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
Obrigado!
△ ▽ • Responder • Compartilhar ›

Flávio > Albuquerque • 4 anos atrás


Consegui incluir um novo cadastro, segui o código exatamente como
está no tutorial. Você digitou ou copiou o código do tutoria ?
△ ▽ • Responder • Compartilhar ›

Albuquerque > Flávio • 4 anos atrás


Eu primeiro segui o tutorial digitando todo o códio conforme
disposto no tutorial. Não funcionou. Depois refiz copiando e
colando conforme o tutorial, também não deu certo. Por último
baixei os arquivos do GitHub, o que na prática é apenas baixar
e executar os arquivos no meu servidor. Todas as tentativas
resultaram exatamente iguais.
△ ▽ • Responder • Compartilhar ›

Ruan Carvalho Mod > Albuquerque • 4 anos atrás

Albuquerque, você precisa tentar encontrar onde está o


erro. Pode ser até um problema no seu servidor local,
ou no banco de dados também.

Só dizer que não funciona não ajuda muita coisa. Você


tem que conseguir alguma mensagem de erro.

Primeiro, verifica a aba console do debug do navegador


(F12, no chrome) e vê se dá alguma mensagem.

Depois, crie logs de erro em cada função no código (um


print, ou uma mensagem). Assim, você pode achar qual
função está quebrando.

Por exemplo, coloque um print_r em cada função dos


arquivos. Aí você vai saber onde parou e o porquê.
△ ▽ • Responder • Compartilhar ›

Elquisllei DA Silva Oliveira A • 4 anos atrás


Poderia incrementar de como criar imagem e editar junto ao formulário
△ ▽ • Responder • Compartilhar ›

Mega Profissionalizante Formaç > Elquisllei DA Silva Oliveira A


• 4 anos atrás
Cara seria muito proveitoso.
△ ▽ • Responder • Compartilhar ›

wellington • 4 anos atrás


Boa noite, excelente trabalho, no meu nao esta inserindo novos clientes,
poderia me explicar o por que, muito obrigado. quando clico em salvar ele vai
pra o index mas nao adiciona novos clientes.
△ ▽ • 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

fabio • 4 anos atrás


Olá Ruan tudo bem? Olha só criando a tabela "customers" conforme o tutorial
dá tudo certo aqui. Mas quando crio a tabela "suportes" não consigo inserir os
dados, no caso dos names nos inputs como devo fazer para associar aquele
input a tabela que quero inserir dados?
△ ▽ • Responder • Compartilhar ›

Diego Albuquerque • 4 anos atrás


Olá, boa tarde! Muito bom o tutorial!!
Estou com um problema.. quando clico em "clientes" na tela principal ele
apresenta a seguinte mensagem de erro: Fatal error: Call to undefined
method mysqli_result::fetch_all() in
D:MSXwwwrootprojetoXcrudincdatabase.php on line 44

E quando eu clico em savar, os dados não estão sendo enviados para o DB e


aparece uma tela em branco.

O que poderia ser?

Desde já agradeço.

Um abraço
△ ▽ • Responder • Compartilhar ›

Ruan Carvalho > Diego Albuquerque • 4 anos atrás


Provavelmente você está com uma versão desatualizada do PHP, ou
da mysqli.
Daí, não encontra a função fetch_all().

Use o método alternativo que está comentado no arquivo


database.php, na função find().
Revise a parte III, caso necessário.

Abs.
Ruan
△ ▽ • Responder • Compartilhar ›

Mario Binga • 4 anos atrás


Parabens pelo excelente post

mais estou com um problema quando clico no botao EDITAR


aparece nos campos a seguinte linha de comando:

Notice: Undefined index: name in D:crud-bootstrap-phpcustomersedit.php


on line 15

Alguem pode me ajudar ?


△ ▽ • Responder • Compartilhar ›

guhmello21 • 4 anos atrás


cara esse tutorial é o melhor que já encontrei
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 16/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy

△ ▽ • Responder • Compartilhar ›

guhmello21 • 4 anos atrás


gostaria de saber se tem como criar algumas funções que não estou
conseguindo implesmenta no codigo, que era a função pra imprimir o pdf das
informações já existentes dos usuários e a função de cadastro para usuarios,
os clientes não precisam ter acesso ao dash mas gostaria de criar uma area
onde eles possam preencher o form e imprimir as funções semparadamente
do dash, exite alguma possibilidade de implementar no codigo? ou pelo
menos me dar algum norte para que eu possa pesquisar sobre e criar eu
mesmo?
△ ▽ • Responder • Compartilhar ›

Ruan Carvalho > guhmello21 • 4 anos atrás


Você pode seguir os mesmos passos para criar um CRUD de
usuários. Basta criar a tabela e mudar um pouco o código.

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 ›

Lucas • 4 anos atrás


Já consegui resolver.. só para avisar. Muito obrigado! Lucas
△ ▽ • Responder • Compartilhar ›

Ruan Carvalho > Lucas • 4 anos atrás


Beleza, Lucas!
Eram os 'name' nos inputs que estavam diferentes, correto?

Abs.
Ruan
△ ▽ • Responder • Compartilhar ›

Lucas • 4 anos atrás


Neste trecho do functions, esta entrando no print_r("entrando aqui")

if (isset($_POST['paciente'])) {
$paciente = $_POST['paciente'];
//$paciente['modified'] = $now->format("Y-m-d H:i:s");

print_r($id);
print_r($paciente);

update('tb_paciente', $id, $paciente);


header('location: index.php');
} else {

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 ›

Lucas • 4 anos atrás


Boa noite Ruan, tudo joia? Estou com problemas. Na atualização, a página é
carregada só que os valores não vem preenchidos nos campos. Não ocorre
erro nenhum. (*Estou fazendo esse CRUD com outros campos). Muito
obrigado. abracos
△ ▽ • Responder • Compartilhar ›

Diego • 4 anos atrás


Como eu poderia modificar o $modified['name'] por exemplo na função de
cadastro (add.php) ? pois tenho
um campo $modified['valor] no meu programa, só que por algum motivo não
consigo modificar...
tentei colocar $modified['valor'] = função_que_formata($modified['valor']); Mas
nao deu certo... ele duplica a chave 'valor'. :(
△ ▽ • Responder • Compartilhar ›

Diego > Diego • 4 anos atrás


é $customer['valor'] em vez de $modified['valor']. Apenas me
corrigindo.
△ ▽ • Responder • Compartilhar ›

Thiago Centurion • 4 anos atrás


Boa tarde, Ruan. Adorei seu tutorial, muito obrigado!! Estou conseguindo
produzir meu projeto de processo seletivo graças a ele.
Estou com uma dúvida:
Na function save() dentro de database.php, eu estava com erros ao inserir os
valores no BD. Porém, no meu try {}, não estava mostrando nenhuma
mensagem sobre o registro cadastrado ter sucesso ou não, pelo $_SESSION.
Tem ideia do que posso fazer e por onde começar?
Obrigado!
Abraços
△ ▽ • Responder • Compartilhar ›

Ruan Carvalho > Thiago Centurion • 4 anos atrás


O $_SESSION deve estar sendo definido, mas não exibido.

Você pode usar o print_r($_SESSION) nas páginas (views) pra ver o


que tem, e depois criar uma
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 18/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy

<

div> pra exibir as mensagens, quando tiver.


△ ▽ • Responder • Compartilhar ›

Thiago Centurion • 4 anos atrás


PARA QUEM ESTÁ COM PROBLEMA EM INSERIR OS DADOS NA
TABELA, QUANDO CLICA EM SALVAR:

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 ›

Ruan Carvalho > Thiago Centurion • 4 anos atrás


Bom, não encontrei erros na função.
Mas, obrigado pela contribuição, que pode servir a alguém.
△ ▽ • Responder • Compartilhar ›

Marcos Souto Junior • 5 anos atrás


Boa Tarde, Estou com o mesmo problema na página add.php segui o
processo na medida que está no site, o botão salvar não acessa o banco e
não armazena as informações. Vejo que vai para página index.php.

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 ›

Leonardo > Marcos Souto Junior • 5 anos atrás


Nesta parte Marcos, só consegui resolver quando alterei na tabela do
banco de dados os tipos de dados que o formulário recebe... rsrs... ou
você trata no próprio código ou então vai direto na tabela e joga um
https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 19/21
17/09/2021 22:55 CRUD com Bootstrap, PHP & MySQL – Parte IV - Web Dev Academy
p p g j g
String em algumas destas variáveis.
△ ▽ • Responder • Compartilhar ›

Rod > Leonardo • 3 anos atrás


O Leonardo tem razão, tive que alterar o campo "birthdate"
para VARCHAR(100) no MYSQL e resolveu o problema. Outra
solução seria implementar uma mascara na página, evitando
que o usuário insira valores invalidos ou com caracteres
estranhos, que possam causar erro na hora de tentar dar o
INSERT.
△ ▽ • Responder • Compartilhar ›

Valney Filho • 5 anos atrás


Bom dia Ruan! Sobre a inserção de um novo registro no BD, copiei fielmente
sua instrução e quando clico no botão salvar de cadastro do novo cliente,
nada acontece e volto a pagina index.php de cliente. Já testei os outros
comandos, atualizar, deletar e funcionam perfeitamente, mas a inserção nem
da erro em tela ou pelo inspetor de elementos do Chrome, nem cadastra os
dados que coloquei nos inputs. Poderia me ajudar? Desde já agradeço pelo
ótimo tutorial.

Links no PasteBin com meu código


http://pastebin.com/taE8z8QM
http://pastebin.com/mGj0YBri
http://pastebin.com/LFUpQNqD
△ ▽ • Responder • Compartilhar ›

Ruan Carvalho > Valney Filho • 5 anos atrás


Comente a linha que contém "header('location: …" ); Essa função que
faz o redirecionamento.

Depois, use a função print_r( $variavel ) em cada função para fazer o


debug e achar seu erro.
△ ▽ • Responder • Compartilhar ›

Leonardo > Ruan Carvalho • 5 anos atrás


Já consegui Ruan, obrigado! Agora só estou com um problema
pra mostrar os dados que vem nesta parte da função find( );

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

Bruno > Valney Filho • 5 anos atrás


Valney Filho, conseguiu resolver, estou na mesma situação.

TAGS

Bootstrap CRUD Drupal HTML & CSS JavaScript jQuery PHP SQL Tooling

WordPress

MAIS ACESSADOS

» CRUD com Bootstrap, PHP & MySQL - Parte I


» Bootstrap: Criando Layouts e Grids
» Bootstrap 4: Como Começar
» Como Configurar um Servidor Local para Desenvolvimento Web
» Aprenda a Fazer um CRUD com Bootstrap, PHP & MySQL

ORGULHOSAMENTE FEITO COM WORDPRESS | TEMA: BASKERVILLE 2 POR ANDERS NOREN


ACIMA ↑

https://webdevacademy.com.br/tutoriais/crud-bootstrap-php-mysql-parte4/ 21/21

Você também pode gostar