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

Busca no MySql sem refresh da página

25/08/2017

Vamos aprender hoje como realizar uma busca no banco de dados MySql sem necessidade de atualização da página. Vamos utilizar HTML5, JQuery e PHP.

A disposição dos arquivos segue abaixo:

Busca sem refresh no mysql - Arquivos necessários

Tabela para busca sem refresh

O código para criarmos a nossa tabela sql segue abaixo.

CREATE TABLE PRODUTOS (
	id INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY(id),
    produto VARCHAR (90),
    valor VARCHAR (30)
)

Insira alguns dados de exemplo na tabela acima para testarmos a busca posteriormente.

Arquivo HTML5 para busca sem atualização da página (index.php)

Começamos linkando nossos arquivos externos entre as tags head.

<link rel="stylesheet" href="stylesheet.css">
<script src="jquery-2.1.4.min.js"></script>
<script src="javascript.js"></script>

Vamos criar um título e um formulário para busca, bem como a tabela que irá mostrar os dados. A div id resultado será aquela que receberá os dados vindos da pesquisa.

<h1>Busca sem refresh</h1>

<form action="processa.php">
    Buscar por: <input type="text" name="campo" id="campo">
</form>

<div id="resultado">
    include('conecta.php');

    $sql=$mysqli->prepare('select * from produtos');
    $sql->execute();
    $sql->bind_result($id,$produto,$valor);

    echo "
        <table>
            <thead>
                <tr>
                    <td>Id</td>
                    <td>Produtos</td>
                    <td>Valor</td>
                </tr>
            </thead>

            <tbody>
    ";

    while($sql->fetch()){

    echo "
        <tr>
            <td>$id</td>
            <td>$produto</td>
            <td>$valor</td>
        </tr>
    ";
    }

    echo "
        </tbody>
    </table>
    ";
</div>

Arquivo CSS para estilizar a busca (stylesheet.css)

Nosso arquivo de folha de estilo em cascata será responsável por estilizar nossa tabela.

table thead td{
    width: 100%;
    background: #333;
    color:#FFF;
    height: 40px;
    text-align:center;
}

table tbody td{
    width: 100%;
    height: 40px;
    text-align:center;
}

Arquivo para conexão ao banco de dados (conecta.php)

$servidor="localhost";
$usuario="root";
$senha="";
$bancodedados="db_mysqli";

$mysqli=new mysqli($servidor,$usuario,$senha,$bancodedados);

Arquivo para busca dinâmica em PHP (processa.php)

Este será o arquivo responsável por realizar a busca no banco de dados. A variável campo vai receber os dados digitados pelo usuário e através do JQuery realizará a busca pelo termo desejado.

include('conecta.php');

$campo="%".$_POST['campo']."%";

$sql=$mysqli->prepare("select * from produtos where produto like ?");
$sql->bind_param("s",$campo);
$sql->execute();
$sql->bind_result($id,$produto,$valor);

echo "
    <table>
        <thead>
        <tr>
            <td>Id</td>
            <td>Produtos</td>
            <td>Valor</td>
        </tr>
        </thead>

        <tbody>
        ";

        while($sql->fetch()){

        echo "
        <tr>
            <td>$id</td>
            <td>$produto</td>
            <td>$valor</td>
        </tr>
        ";
        }

        echo "
        </tbody>
    </table>
";

Arquivo JQuery para realizar a busca sem refresh do navegador (javascript.js)

O JQuery realizará a integração entre o PHP e o banco de dados sem atualizar o navegador.

$(document).ready(function(){

    $('#campo').keyup(function(){

        $('form').submit(function(){
            var dados = $(this).serialize();

            $.ajax({
                url: 'processa.php',
                method: 'post',
                dataType: 'html',
                data: dados,
                success: function(data){
                    $('#resultado').empty().html(data);
                }
            });

            return false;
        });

        $('form').trigger('submit');

    });
});

Sucesso nos códigos e na vida!

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

Posts Relacionados

Cadastrando com PHP e MYSQLI
Abordaremos hoje o assunto: cadastrando dados com o PHP e com MYSQLI. Conforme previsão do PHP7, não será aceito mais a função mysql_*, logo utilizaremos mysqli
Saiba mais!
Passando parâmetros PHP através de URL's amigáveis
Hoje vamos aprender como passar parâmetros pelo php através de url amigáveis. A principal utilização das URL Amigáveis é em relação ao SEO.
Saiba mais!
PHP
PHP é uma das principais linguagens de programação utilizada nas plataformas web. Isso porque além de ser uma linguagem leve, o PHP é robusto.
Saiba mais!