Dreamweaver - Sistema de Busca Interna

10
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... 1

description

Dreamweaver - Sistema de Busca Interna

Transcript of Dreamweaver - Sistema de Busca Interna

Page 1: 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

Page 2: Dreamweaver - Sistema de Busca Interna

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

Page 3: Dreamweaver - Sistema de Busca Interna

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

Page 4: Dreamweaver - Sistema de Busca Interna

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

Page 5: Dreamweaver - Sistema de Busca Interna

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

Page 6: Dreamweaver - Sistema de Busca Interna

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

Page 7: Dreamweaver - Sistema de Busca Interna

.... 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

Page 8: Dreamweaver - Sistema de Busca Interna

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

Page 9: Dreamweaver - Sistema de Busca Interna

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