segunda-feira, 10 de dezembro de 2012

Sistema de busca em PHP e MySQL





Olá pessoal!
Vamos falar de um assunto que muita gente pensa que é dificil de programar mas na verdade é bem fácil, estou falando de um sistema de busca.

Neste post estarei utilizando três páginas, uma para o formulário, outra para os resultados, e uma página de conexão com o banco de dados. É possível fazer também com duas páginas e até com uma pagina, mas dessa forma fica mais organizado. :)

Vamos lá...

Primeiro devemos criar uma conexão com o banco de dados. Caso tenha dúvidas de como fazer para criar um banco de dados e conectar a ele, acesse os links:

Iniciando no PHP (tópico Criando um banco de dados)
Conexão MySQL com PHP

Com o banco de dados  e conexão criadas, vamos ao que interessa.

Criarei uma página chamada index.html que conterá nosso formulário de busca.

index.html
<form action="busca.php" method="get">
<input type="text" name="palavra" />&nbsp;<input type="submit" value="Buscar" />
</form>
Esse é o formulário que enviará a palavra a ser buscada para a nossa página de resultados.

Vamos criar agora a nossa página de resultados, nomearei como busca.php.

busca.php
 
<?php
include "conexao.php";

$palavra = $_GET["palavra"];

$sql = mysql_query("SELECT * from pessoas WHERE nome LIKE '%".$palavra."%'");
$result = mysql_num_rows($sql);
if($result>=1) {
    echo "Exibindo ".$result." resultados para <strong>".$palavra."</strong><br><br>";
    while($linha = mysql_fetch_array($sql)) {
        $nome = $linha["nome"];
        echo $nome."<br>";
    }
  
} else {
    echo "Não foi encontrado nenhum resultado para <strong>".$palavra."</strong>";
}
?>
Vamos entender nossa página de resultados...
  • Na primeira linha eu chamo a conexão com o banco de dados que foi feita anteriormente.
  • Logo abaixo, eu uso o comando $_GET["palavra"], para obter os dados do formulário(repare que no código do formulário, o campo text tem a propriedade name com o valor palavra).
  • Abaixo foi criado a query para retornar os dados do banco de dados com os parâmetros da busca.
  • A varíavel $result, identifica quantos resultados foram encontrados nessa consulta.
  • A estrutura if e else verifica se possui ou não resultados.
  • Caso possua resultados é utilizado o comando While(Traduzindo fica: Enquanto), ou seja, enquanto tiver dados que condiz com os parametros da pesquisa, será exibido.
  • A variável $linha, é quem traz os resultados do banco de dados.
  • Depois é só a continuação do if e else.
Esse foi nosso post sobre sistema de busca com php, caso tenham qualquer dúvida ou precisem de um código mais avançado para implementar em seu site, só entrar em contato pelo e-mail scriptmais@gmail.com.

Até o próximo post!

Artigos relacionados:
Inserir dados no banco de dados com PHP
Atualizar dados no banco de dados com PHP
Deletar dados no banco de dados com PHP