terça-feira, 12 de junho de 2012

Motor de Busca com PHP em MySQL

Olá !
Irei ensinar como desenvolver um sistema de busca web utilizando PHP e MySQL. Espero que todos gostem, e, podem ter certeza de que estes códigos serão muito importantes.
Descrição Geral: O sistema de busca é, como dito acima, escrito em PHP. Ele trata as palavras com relevância, ou seja, caso você tenha em seu Banco de Dados um cadastro que contenha um campo chamado nome e neste campo contenha o valor "Leandro", por exemplo, ao digitar somente a sílaba "Le" no formulário de pesquisa e realizar a consulta, fará com que seja buscado todos os itens que possuam este valor no nome. Logicamente, Leandro seria um dos que apareceria. Entretanto, se você tiver dois cadastros, Leandro e Leonardo respectivamente, ambos serão exibidos. 

Fácil? Verão como é. 
Arquivos que serão criados hoje (cada um deles será explicado, logicamente): 
connection.php (conterá as linhas de conexão com o Banco de Dados) 
motor.php (conterá o formulário com o campo para pesquisa) 
busca.php (para onde serão enviados os dados da página motor.php) 
estilo.css (arquivo CSS para não deixar o sistema a lá "Times New Roman") 

Começando: Primeiramente teremos que criar as tabelas que conterão os cadastros a serem procurados. Neste caso, criaremos uma tabela mais simples, somente com os campos de ID do usuário, nome deste, login e senha, por exemplo. Presumirei aqui que você já saiba como criar tabelas e banco de dados no MySQL. 

Código da Tabela: 

CREATE TABLE `usuarios` ( 
`id_user` int(11) NOT NULL auto_increment, 
`nome` varchar(80) NOT NULL, 
`login` varchar(50) NOT NULL, 
`senha` varchar(50) NOT NULL, 
PRIMARY KEY (`id_user`) 
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ; 

Após a criação da tabela, iremos inserir alguns dados nela através do código abaixo: 

INSERT INTO `usuarios` (`id_user`, `nome`, `login`, `senha`) VALUES 
(1, 'Leandro Antunes', 'lantunes', '123456'), 
(2, 'Janir Maria Mangini', 'jmangini', '123456'), 
(3, 'Bruna Dali Alves Lopes', 'blopes', 'abacaxi'), 
(4, 'Pedro Rolha', 'prolha', 'tibirro'), 
(6, 'Bruno Silva', 'bsilva', 'ferrari'); 

Feito isso, pronto, sua tabela já possui seis cadastros que possuem, respectivamente, os campos id do usuário, seu nome, um login e uma senha. Algo bem simples mesmo. Após realizar isto, começaremos a produção dos arquivos em PHP e CSS, para deixar tudo em pleno funcionamento. 

estilo.css: Nada de mais neste arquivo. Ele dá alguma formatação básica ao sistema. Abaixo, o código:
connection.php: Começaremos com a conexão do nosso sistema com o Banco de Dados, a qual será feita em um arquivo separado. Aqui você deverá colocar, no campo SEU SERVIDOR, USUARIO e SENHA os respectivos valores de seu Server MySQL. Abaixo, o código:


Salvaremos este arquivo com o nome de connection.php. Faça um teste, rode somente este arquivo em seu servidor local, ou na web, e verifique se a página fica em branco. Se ficar, tudo certo até aqui. 

motor.php: Essa página seria nossa index, a página principal. Consiste em um formulário básico, um campo de texto e um botão para enviar os valores. Abaixo, o código

Após salvo, sua criação da página acima deverá se parecer com isto, abaixo: 

busca.php: Este arquivo será o responsável por coletar o nome da página motor.php, verificar se há alguma ocorrência e exibir em tela os resultados. Abaixo, o código-fonte:


Detalhes de busca.php: Através do método $_POST o valor do nome do formulário anterior é coletado e inserido na variável $nome. Após isso, um query de SQL é executado: neste, será selecionado no Banco de Dados todas as ocorrências na tabela usuarios que contenham qualquer termo digitado no formulário; termo agora que está na variável $nome. Após realizar esta query (execução SQL, traduzindo), o sistema verifica se teve algum retorno de resultado, através do comando mysql_num_rows. Este comando verifica se a execução retornou alguma linha: se sim, ele prossegue adiante, caso não, ele imprime na tela a linha "Nenhum resultado para $nome".

Logo em seguida temos um laço while, responsável pela exibição dos dados na tela. Aqui, o laço executa a função mysql_fetch_array($comando_sql) e atribui o valor ao array$array_valores. Array porque a instrução mysql_fetch_array faz justamente isso: cria um array associativo com os valores obtidos na instrução SQL armazenada na variável $comando_sql. Por isso o comando while, para que enquanto exista mais de um valor, ele exiba também.

O array criado ($array_valores) possui como index dos valores o nome de cada campo do Banco de Dados, ou seja, $array_valores['nome'] imprime o nome do usuário em questão, armazenado no Banco de Dados.

Recapitulando: O arquivo connection.php é o responsável pelo link com o Banco de Dados. Não se esqueça de alterar o SERVIDOR, USUÁRIO e SENHA, para que funcione corretamente. O arquivo motor.php é o responsável pelo formulário básico, apenas para envio do dado de nome e, por fim, o arquivo busca.php é o arquivo que vai verificar se há ocorrências no Banco de Dados com a palavra digitada. Caso não exista, ele exibe na tela que não há resultado, caso contrário, exibe tudo que há.

Espero que tenham gostado, que aproveitem e aprimorem este script, pois com certeza será útil a você.

Nenhum comentário:

Postar um comentário