Você está na página 1de 9

Sistema de busca interna

Marcelo Oliveira (e-mail) trabalha com Dreamweaver desde 1999, possui a formação Macromedia
Dreamweaver Developer e coordena o DWMX.

Olá amigos do iMasters. Vamos, nesse artigo, criar um sistema de busca para um site, utilizando
PHP e um banco MySQL. No exemplo criaremos uma busca interna para o site DWMX. Como
todos sabem, sou colunista semanal iMasters e mantenho um projeto pessoal no ar que é o
DWMX. Esse banco terá palavras chaves correspondentes a artigos publicados, a data de sua
publicação, seu número e a URL.

Vamos começar criando nossa tabela (já vimos isso nos artigos anteriores) em nosso banco de
dados (htdocs):

CREATE TABLE `tutorial_126` (


`ID` tinyint(9) unsigned NOT NULL auto_increment,
`numero` tinyint(3) NOT NULL default "0",
`data` date NOT NULL default "0000-00-00",
`nome` varchar(50) NOT NULL default "",
`descricao` text NOT NULL,
`url` text NOT NULL,
PRIMARY KEY (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

Agora, com a conexão ao banco de dados estabelecida...

Vamos criar um formulário para inserirmos dados dinamicamente em nossa tabela. Crie um arquivo
novo (inserir.php). Pela Barra Application, escolha Record Insertion Form Wizard.

1
No quadro que se abre, configure:

Em "Connection", o nome de seu banco de dados (htdocs). Em "Table", o nome de sua tabela.
Determine o nome do arquivo a ser carregado quando a inserção for feita "Afther inseting, go
to::" (inserido.php). Nos campos do formulário, altere somente a Coluna ID, alterando-a para
Hidden Field (Dispaly as:). Clique em OK e um formulário será criado:

2
Agora vamos inserir alguns registros nessa tabela:

INSERT INTO `tutorial_126` VALUES (1, 7, "2004-07-14", "behaviors", "behaviors


comportamentos", "http://www.dwmx.com.br/tutoriais/07_behaviors/index.php");
INSERT INTO `tutorial_126` VALUES (2, 25, "2004-08-04", "telnet", "mysql telnet",
"http://www.dwmx.com.br/tutoriais/25_mysql_telnet/index.php");
INSERT INTO `tutorial_126` VALUES (3, 46, "2004-08-28", "cgi para envio de forms", "cgi
formularios", "http://www.dwmx.com.br/tutoriais/46_cgi_forms/index.php");
INSERT INTO `tutorial_126` VALUES (4, 89, "2004-10-16", "quiz", "quiz questionario",
"http://www.dwmx.com.br/tutoriais/89_quiz/index.php");

Arquivo inserido.php:

Bem, já temos nosso banco, nossa tabela e nosso formulário de inserção de registros para nossa
busca interna. Vamos agora criar uma página para realizar a busca e outra aonde mostraremos o
resultado dessa busca.

Chamarei a página da busca de busca.htm. Nela criaremos um formulário simples, conforme


imagem abaixo:

3
Nesse formulário temos que configurar alguns detalhes. Primeiro, no campo texto devemos definir
um nome para o mesmo (busca). Nome esse que será nossa variável.

Agora selecione o formulário...

...Determine seu Method como "GET", pois nossa variável "busca" (nome do campo de texto) será
passada por URL e determine em "Action" = busca_resultado.php pois iremos redirecionar o
formulário para nossa página com o resultado, a qual daremos o nome de busca_resultado.php.

Não podemos deixar de esquecer do botão "Submit".

Bem, nosso formulário de busca já está pronto. Vamos finalmente criar uma página com o
resultado dessa busca (busca-resultado.php).

4
Crie um arquivo PHP novo, lembrando que nossa conexão ao banco já está configurada (vide
primeira parte do artigo). Crie um "Recordset Avançado" pelo Painel Bindings conforme imagem a
seguir:

Escolha Avançado, e configure da seguinte maneira: Em "nome", escolha = rsBusca_Resultado, e


em "Connection" o nome de sua conexão. No meu caso defini na parte 1 do artigo como sendo
htdocs (mesmo nome de meu banco). Agora selecione a tabela "tutorial_126" e clique em Select.
Note a Instrução SQL sendo criada.

5
Vamos terminar nossa Instrução SQL propriamente dita, para que nosso Recordset realize
corretamente a busca. Iremos fazer a busca em dois campos: "nome" e "descrição". Clique na
tabela tutorial_126 e selecione "nome" e clique em "WHERE".

Agora criaremos uma variável, clicando...

6
.... E configurando da seguinte maneira:

Note que dei o mesmo nome para variável do campo text-field em nosso arquivo. Como estamos
tratando do campo nome, quero que, quando eu digitar qualquer caractere, a busca seja realizada.
Então, pelo SQL, usaremos a cláusula LIKE da seguinte maneira:

LIKE "%%busca%%"

Lembrando que desejo também que seja realizada a busca no campo "descrição". Então voltamos
na tabela tutorial_126, campo "descrição" e vamos em "WHERE". Só que, note a instrução SQL...

Não quero que procure no campo "nome" e (AND) no campo "descrição". Quero que procure no
campo "nome" ou (OR) no campo "descrição". Troque AND por OR.

Insira novamente nossa variável. Terminamos nossa Instrução SQL:

7
Finalizando, vamos criar uma tabela para mostrarmos o resultado de nossa busca. Após criada a
tabela, inserimos os campos em suas respectivas colunas...

...E aplicamos o Server Behavior: Repeat Region, selecionando a linha (tag tr) e pelo Painel Server
Behavior > Repeat Region. Não se esqueça de escolher "All records".

Bem, terminamos. Vamos agora, pelo navegador, testar nossa busca.

Resultado:

8
Para fazer com que o registro digitado no campo "url" seje um link, vá no arquivo
busca_resultado.php e edite a linha 33:

Da seguinte maneira:

O que fiz foi criar um link para o campo. Resultado:

Essa segunda parte do artigo foi praticamente escrita pelo amigo Leandro Vieira. Eu simplesmente
adaptei alguns detalhes. Um abraço a todos.

Você também pode gostar