William Luis

0 %
William Luis
Fullstack Developer
  • Residence:
    Canada
  • City:
    Toronto
  • Age:
    26
French
English
Spanish
html
CSS
Js
PHP
WordPress
  • Bootstrap, Materialize
  • Stylus, Sass, Less
  • Gulp, Webpack, Grunt
  • GIT knowledge

Sistema de busca interna com PHP/MySQL

20 de maio de 2011

Olá pessoal, hoje vamos aprender a fazer um sistema de busca interna simples. Ou seja, vamos buscar em nosso banco de dados informações relativas a uma palavra e apresentar os resultados ao usuário.

1. Banco de dados

Como exemplo, vamos utilizar uma tabela de produtos:

[sourcecode language=”sql”]
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-mãe ASUS’, 250.00),
(4, ‘Placa-mãe GIGABYTE’, 180.00),
(5, ‘Placa de vídeo GE-FORCE’, 300.00);
[/sourcecode]

2. Busca com PHP

Agora iremos criar nosso formulário de busca:

[sourcecode language=”php”]
<form name="frmBusca" method="post" action="<?php echo $_SERVER[‘PHP_SELF’] ?>?a=buscar" >
<input type="text" name="palavra" />
<input type="submit" value="Buscar" />
</form>

[/sourcecode]

Quando clicado em Buscar, nossa action apontará para o próprio arquivo ($_SERVER[‘PHP_SELF’]), porém enviando através do método GET a ação a = buscar;

Ou seja, agora nós devemos verificar a ação 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 código PHP:

[sourcecode language=”php”]
<?php
Conexão com o banco de dados
$conn = @mysql_connect("localhost", "usuario", "senha") or die("Não foi possível a conexão com o Banco");
Selecionando banco
$db = @mysql_select_db("produtos", $conn) or die("Não foi possível selecionar o Banco");

Recuperamos a ação enviada pelo formulário
$a = $_GET[‘a’];

Verificamos se a ação é 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."%’ ORDER BY nome");

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 preços
while ($produto = mysql_fetch_object($sql)) {
echo $produto->nome . " (R$ ".$produto->valor.") <br />";
}
Se não houver registros
} else {
echo "Nenhum produto foi encontrado com a palavra ".$palavra."";
}
}
?>
[/sourcecode]

Bom é apenas isso, acho que nem preciso complementar, pois o código está todo comentado. Nosso código final fica da seguinte maneira:

[sourcecode language=”php”]
<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=buscar" >
<input type="text" name="palavra" />
<input type="submit" value="Buscar" />
</form>

<?php
// Conexão com o banco de dados
$conn = @mysql_connect("localhost", "usuario", "senha") or die("Não foi possível a conexão com o Banco");
// Selecionando banco
$db = @mysql_select_db("produtos", $conn) or die("Não foi possível selecionar o Banco");

// Recuperamos a ação enviada pelo formulário
$a = $_GET[‘a’];

// Verificamos se a ação é 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."%’ ORDER BY nome");

// 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 preços
while ($produto = mysql_fetch_object($sql)) {
echo $produto->nome . " (R$ ".$produto->valor.") <br />";
}
// Se não houver registros
} else {
echo "Nenhum produto foi encontrado com a palavra ".$palavra."";
}
}
?>
</body>
</html>

[/sourcecode]

3. Conclusão

O que eu passei é só a base, agora use sua criatividade para criar seu próprio sistema de busca, até a proxima pessoal!

Posted in Dicas, PHPTags:
Write a comment