Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Utilizando JSON para Busca no Banco de Dados

23/08/2018

Hoje aprenderemos como utilizar o PHP com MySql buscando os dados com ajax e tendo como resposta um json. Fique ligado!

Resposta em JSON utilizando PHP

Vamos criar nossa index um html5 simples com um formulário de pesquisa, da seguinte forma:

<!doctype html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Escola</title>
</head>
<body>
    <div class="resultadoForm">
        <table>
            <thead>
            <tr>
                <td>ID</td>
                <td>NOME</td>
                <td>NOTA</td>
            </tr>
            </thead>
            <tbody></tbody>
        </table>
    </div>

    <form name="formEscola" id="formEscola" method="post" action="controller/controllerEscola.php">
        <input type="text" name="busca" id="busca"><br>
        <input type="submit" value="Pesquisar">
    </form>

    <script src="lib/zepto.min.js"></script>
    <script src="lib/javascript.min.js"></script>
</body>
</html>

Repare que no código acima estamos linkando a biblioteca ZeptoJS e um arquivo externo javascript.min.js.

Vamos criar um banco de dados escola e uma tabela boletim com as colunas id, nome e nota, conforme código abaixo:

CREATE TABLE `boletim` (
  `id` int(11) NOT NULL,
  `nome` varchar(60) NOT NULL,
  `nota` varchar(2) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
ALTER TABLE `boletim` ADD PRIMARY KEY (`id`);
ALTER TABLE `boletim` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

INSERT INTO `boletim` (`id`, `nome`, `nota`) VALUES
(1, 'Thiago', '10'),
(2, 'Thais', '9'),
(3, 'Rafael', '7'),
(4, 'Marina', '5');

Posteriormente vamos criar nossa ClassConexao para acessar o banco de dados:

<?php
abstract class ClassConexao{

    protected function conectaDB()
    {
        try{
            $con=new PDO("mysql:host=localhost;dbname=escola","root","");
            return $con;
        }catch (PDOException $erro){
            return $erro->getMessage();
        }
    }
}

Criaremos também a ClassPesquisa:

<?php
include("ClassConexao.php");

class ClassPesquisa extends ClassConexao{

    public function pesquisaDb($busca)
    {
        $buscaLike='%'.$busca.'%';
        $crud=$this->conectaDB()->prepare("select * from boletim where nome like :nome");
        $crud->bindValue(':nome',$buscaLike);
        $crud->execute();
        return $f=$crud->fetchAll();
    }
}

Nosso controller ficará responsável por instanciar a ClassPesquisa e chamar o método pesquisaDB() dando como retorno um echo json_encode.

<?php
include "../class/ClassPesquisa.php";

$busca=filter_input(INPUT_POST,'busca',FILTER_SANITIZE_SPECIAL_CHARS);
$pesquisa=new ClassPesquisa();
$retorno=$pesquisa->pesquisaDb($busca);
echo json_encode($retorno);

O arquivo javascript.min.js ficará assim:

$('#formEscola').on('submit',function(event){
    event.preventDefault();
    var dados=$(this).serialize();

    $.ajax({
        url: 'controller/controllerEscola.php',
        type: 'post',
        dataType: 'json',
        data: dados,
        success: function(response){
            $('.resultadoForm table tbody').empty();
            $.each(response,function(key,value){
                if(value.nota > 6){
                    $('.resultadoForm table tbody').append("<tr> <td>" + value.id + "</td> <td>" + value.nome + "</td> <td>" + value.nota + "</td> </tr> ");
                }
            });
        }
    });
});

No código acima ao submeter o formulário enviamos os dados esperando como retorno o json. Por fim, adicionamos uma linha da tabela para cada resultado.

Bem simples né! Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Invisible reCaptcha 3 do Google
Nesse vídeo-tutorial aprenderemos como fazer um invisible reCaptcha 3 utilizando a API do Google.
Saiba mais!
Vanilla Javascript - #1 Introdução
Nessa primeira aula realizaremos a introdução ao curso, passando os objetivos e a ementa do projeto didático.
Saiba mais!
Javascript
Ensinaremos durante as aulas a codificação desta importante linguagem de programação.
Saiba mais!