Você está na página 1de 3

Sistema de busca interna com PHP/MySQL

60. 183 VI SUALI ZAES

12 22

Ol pessoal, hoje vamos aprender a fazer um sistema de busca interna simples. Ou seja, vamos buscar em nosso banco de dados informaes relativas a uma palavra e apresentar os resultados ao usurio.

1. Banco de dados
Como exemplo, vamos utilizar uma tabela de produtos:

CREATE TABLE IF NOT EXISTS `produtos` ( `cod` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(50) NOT NULL, `valor` double NOT NULL, PRIMARY KEY (`cod`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; INSERT INTO `produtos` (`cod`, `nome`, `valor`) VALUES (1, 'Processador INTEL', 200.00), (2, 'Processador AMD', 150.00), (3, 'Placa-me ASUS', 250.00), (4, 'Placa-me GIGABYTE', 180.00), (5, 'Placa de vdeo GE-FORCE', 300.00);

2. Busca com PHP


Agora iremos criar nosso formulrio de busca:

<form name="frmBusca" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=busca <input type="text" name="palavra" /> <input type="submit" value="Buscar" /> </form>
Quando clicado em Buscar, nossa action apontar para o prprio arquivo ($_SERVER['PHP_SELF']), porm enviando atravs do mtodo GET a ao a = buscar; Ou seja, agora ns devemos verificar a ao a ser executada e realizar a busca. Claro que voc poderia ter feito outro arquivo, mais como nosso exemplo aqui simples, vamos apenas utilizar um arquivo. Agora vamos ao nosso cdigo PHP:

<?php // Conexo com o banco de dados $conn = @mysql_connect("localhost", "usuario", "senha") or die("No foi possvel a con // Selecionando banco $db = @mysql_select_db("produtos", $conn) or die("No foi possvel selecionar o Banco" // Recuperamos a ao enviada pelo formulrio $a = $_GET['a'];

// Verificamos se a ao de busca if ($a == "buscar") { // Pegamos a palavra $palavra = trim($_POST['palavra']);

// Verificamos no banco de dados produtos equivalente a palavra digitada $sql = mysql_query("SELECT * FROM produtos WHERE nome LIKE '%".$palavra."%' OR // Descobrimos o total de registros encontrados $numRegistros = mysql_num_rows($sql); // Se houver pelo menos um registro, exibe-o if ($numRegistros != 0) { // Exibe os produtos e seus respectivos preos while ($produto = mysql_fetch_object($sql)) { echo $produto->nome . " (R$ ".$produto->valor.") <br />"; } // Se no houver registros } else { echo "Nenhum produto foi encontrado com a palavra ".$palavra.""; } } ?>
Bom apenas isso, acho que nem preciso complementar, pois o cdigo est todo comentado. Nosso cdigo final fica da seguinte maneira:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Sistema de busca interna com PHP/MySQL</title> </head>

<body> <form name="frmBusca" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=busca <input type="text" name="palavra" /> <input type="submit" value="Buscar" /> </form>

<?php // Conexo com o banco de dados $conn = @mysql_connect("localhost", "usuario", "senha") or die("No foi possvel a con // Selecionando banco $db = @mysql_select_db("produtos", $conn) or die("No foi possvel selecionar o Banco" // Recuperamos a ao enviada pelo formulrio $a = $_GET['a']; // Verificamos se a ao de busca if ($a == "buscar") { // Pegamos a palavra $palavra = trim($_POST['palavra']);

// Verificamos no banco de dados produtos equivalente a palavra digitada $sql = mysql_query("SELECT * FROM produtos WHERE nome LIKE '%".$palavra."%' OR // Descobrimos o total de registros encontrados $numRegistros = mysql_num_rows($sql);

// Se houver pelo menos um registro, exibe-o if ($numRegistros != 0) { // Exibe os produtos e seus respectivos preos while ($produto = mysql_fetch_object($sql)) { echo $produto->nome . " (R$ ".$produto->valor.") <br />"; } // Se no houver registros } else { echo "Nenhum produto foi encontrado com a palavra ".$palavra.""; } } ?> </body> </html>

3. Concluso
O que eu passei s a base, agora use sua criatividade para criar seu prprio sistema de busca, at a proxima pessoal! - See more at: http://rafaelcouto.com.br/sistema-de-busca-interna-com-phpmysql/#sthash.wEobsykW.dpuf