Dreamweaver - Sistema de Busca Interna

Post on 06-Jun-2015

10.907 views 2 download

description

Dreamweaver - Sistema de Busca Interna

Transcript of Dreamweaver - Sistema de Busca Interna

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.

9