• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Buscador simples em ASP

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Introdução ao buscador ASP



Comentamos em linhas gerais o exercício Buscador em ASP e oferecemos alguma referência interessante para poder segui-lo.

Por Mario Matías Sebely





Temos diante de nós um manual que nos apresenta Mario Matías Sebely, Webmaster de ConozcaMisiones.com. O autor já nos explicará com mais detalhes, mas basicamente se trata de um guia para implementar um buscador simples de páginas web com ASP.

Para entender este exercício é necessário conhecer a programação de páginas ASP e um pouco do manejo de bancos de dados. Quanto ao resto não apresenta outras dificuldades. Tudo isto se pode aprender na seção de ASP de CriarWeb.com.

Um detalhe importante deste exercício é que realiza o trabalho com os bancos de dados de maneira distinta a que se pode encontrar em nossos manuais. Os objetos de conexão com o banco de dados e os recordsets têm muitas maneiras de se manejar, portanto, cada programador pode utilizá-los de uma maneira distinta e aqui temos um caso.

O exercício está desenvolvido desde o princípio, explicando o banco de dados que se utiliza, a inserção dos dados e a busca. No workshop de ASP temos outra possível implementação de um buscador, no qual se podem utilizar operadores como nos motores avançados, embora neste artigo só tocamos a página ASP que se encarregaria de fazer as buscas.

Depois deste pequeno esclarecimento editorial, vamos ao exercício.

Buscador simples para webs em ASP

Visitando alguns fóruns de ajuda a webmaster puede ver que muitos pedem algum código ou ajuda para armar um buscador dentro de sua Web.

Buscas por aqui, buscas por lá, temos muita informação talvez até em nossa Web.

No seguinte artigo se detalha os passos a seguir para a conformação de um buscador simples, espero que lhes sirva de ajuda.

Começando a armar o buscador

Basearemos a montagem do buscador em 5 pontos:
Um será a conformação de um banco de dados onde armazenaremos toda a informação para a posterior busca.
Logo, montaremos um formulário para o carregamento de dados, informação para nosso buscador em HTML
Também faremos a Web em ASP que carregará todos os dados de nosso formulário.
Veremos o formulário de busca em HTML
Finalmente o Buscador em ASP.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
O banco de dados do buscador


Explicamos como é o banco de dados que será utilizado para construir o buscador simples em ASP.

Por Mario Matías Sebely






Faremos um simples banco de dados em Access com o qual poderemos carregar os dados que logo iremos buscar. Criaremos um banco de dados o qual chamaremos "base.mdb". Posteriormente, criaremos uma nova tabela através de "vista desenho", com os campos que podermos ver a seguir.
Nome, do tipo Texto
Des, do tipo Texto
url, do tipo Texto
categoria, do tipo Texto
pal , do tipo Texto
Vejamos em que consistem estes campos: O primeiro será o nome da Web a qual temos em nosso buscador. O segundo que é Des, é o equivalente à descrição da página, um breve comentário. O campo URL, será a url da Web a qual agregamos a nosso buscador. O campo categoria, que é opcional, se quisermos dividir em categorias a nossas Webs. Por último, o campo pal, no qual ingressaremos as palavras-chave pelas quais buscará nosso buscador.

Uma vez criada a tabela, a salvaremos e lhe daremos o nome "Tabela1".



bbdd.gif
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Formulário para carregar os dados



Vemos o formulário utilizado para escrever os registros que queremos inserir no banco de dados.

Por Mario Matías Sebely





Uma vez feito o banco de dados, começaremos a carregá-lo, para isso necessitaremos um formulário HTML, que nos permita carregar os dados, aqui um exemplo de como poderia ser um:
Nota: Os códigos do exercício estão comentados na cor vermelha. Alguns destes comentários foram colocados diretamente sobre HTML, por isso aparecerão na página como qualquer outro texto. Se vocês copiarem e colarem o código destas páginas necessitarão eliminar em alguns caso esses comentários.


Arquivo carregar.htm

<html>
<head>
<title>Buscador web</title>
</head>

'esta eh a ação que fará quando clicarmos o botao INGRESSAR
<form method="Post" action="ingresso.asp">
<body bgcolor="#FFCC00">

'isto eh modificavel, o que devemos deixar sempre eh o nome do INPUT,
'que como vemos eh Dado1, Dado2 etc.
<p align="left"><font face="Tahoma" size="2"><b><i>Nome <input type="text" name="Dado1" size="20">
</i></b></font></p>

<p align="left"><font face="Tahoma" size="2"><b><i>Descricao <textarea rows="2" name="Dato2" cols="20"></textarea></i></b></font></p>

<p align="left"><font face="Tahoma" size="2"><b><i>Url <input type="text" name="Dado3" size="17"></i></b></font></p>

<p align="left"><font face="Tahoma" size="2"><b><i>Categoria
'uma lista desdobravel com categorias ja pre determinadas,
'isto também pode ser modoficado
</i></b></font><select size="1" name="Dado4">
<option value="Municipios">Municipios</option>
<option value="Comidas Regionais">Comidas Regionais</option>
<option value="Atrações Turísticas">Atrações Turísticas</option>
<option value="Serviços ao Turista">Serviços ao Turista</option>
<option value="Dados Históricos">Dados Históricos</option>
<option value="Produtos Regionais">Produtos Regionais</option>
<option value="Eventos Culturais">Eventos Culturais</option>
<option value="Galeria Fotográfica">Galeria Fotográfica</option>
<option value="Vídeos">Videos</option>
<option value="Histórias e Lendas">Histórias e Lendas</option>
<option value="Trilhas e Caminhos">Trilhas e Caminhos</option>
<option value="Turismo Aventura">Turismo Aventura</option>
<option selected value="-Selecionar-">-Selecionar-</option>
</select></p>

<p align="left"><font face="Tahoma" size="2"><b><i>Palavras chave <textarea rows="2" name="Dado5" cols="20"></textarea></i></b></font></p>
<p align="left">
</p>
<p align="center">
<input type="submit" value="Ingresdar" name="B1">
<input type="reset" value="Restabelecer" name="B2">
</form>

</p>

<p align="center"><font face="Tahoma" size="2">Buscador Web 2002</font></p>

</body>
</html>
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
form_insert.gif


Esclarecimento: estas opções são de um buscador realizado para a Web ConozcaMisiones.com. O WebMaster desta página é quem escreve o artigo.


Se virmos o código HTML em uma das primeiras linhas vemos que temos um POST, o qual é a página seguinte à que se ingressará quando carregarmos os dados e clicarmos em INGRESSAR.

Esta mesma irá à página ingresso.asp, que é que carregará os dados ao Banco de Dados. Veremos o código no seguinte capítulo.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Script para inserir os dados



Vemos o script ASP necessário para recolher os dados do formulário e inseri-los no banco de dados.

Por Mario Matías Sebely




A página ingresso.asp é a encarregada de introduzir os dados que nos chegam através do formulário de inserção no banco de dados. Vemos seu código a seguir.

Página ingresso.asp

'definimos a linguagem a utilizar
<%@ Language="VBScript" %>
<html>
<head>
<title>Ingrseso de Dados</title>
</head>
'comeca o script
<%
'definimos a variável de conexao
Dim Conexao,Tabela
Set Conexao = Server.CreateObject("ADODB.Connection")
Set Tabela = Server.CreateObject("ADODB.Recordset")
'conectamos ao banco de dados mediante OLE ODBC dando o Driver
Conexion.Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("base.mdb")
'definimos a variavel de carga de dados
Dim Temp
'buscamos os dados
Temp="Select * From Tabela1 Where UCase(Nome)='" & UCase(Request("Dado1")) & "' And UCase(Des)='" & UCase(Request("Dado2")) & "' And UCase(Url)='" & UCase(Request("Dado3")) & "' And UCase(Categoria)='" & UCase(Request("Dado4")) & "' And UCase(Pal)='" & UCase(Request("Dado5")) &"'"
Tabla.Open Temp,Conexao,2,3,1
'se nao se repetem agregamos os dados a nosso buscador
If Tabela.BOF And Tabela.EOF Then
Tabela.AddNew
Tabela("Nome") = Request("Dado1")
Tabela("des") = Request("Dado2")
Tabela("Url") = Request("Dado3")
Tabela("Categoria") = Request("Dado4")
Tabela("Pal") = Request("Dado5")
Tabela.Update
'fim do Script
%>
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
<font face="Tahoma" size="2"><b><i>Ingresso de dados completado</i></b></font></p>
<%
'se o campo ja existe para nao fazer duplicados nos da esta mensagem
Else
Response.Write "O registro ja existe"
End If
'fechamos a conexao
Tabla.Close
Conexao.Close
%>
<p align="center"><font face="Tahoma" size="2"><b><i>Buscador Web 2002</i></b></font></p>

<p align="center"><font face="Tahoma" size="2"><b><i><a href="cargar.htm" target="_top">Ingressar
Novo</a></i></b></font></p>
</body>
</html>

Observemos bem o script, e nos centremos no carregamento dos dados, faz um REQUEST dos dados que ingressamos no formulário, e comprova que não exista uma igualdade nos dados, uma vez feito isso agrega com a sentença ADDNEW uma nova fila ao nosso banco de dados.
Colocação do banco de dados: Neste exemplo se acessa ao banco de dados sem criar um DSN no sistema do servidor. Para que funcione devemos colocar o banco de dados no mesmo diretório que a página ASP.


datos_bbdd.gif



Como salvar as URL

Temos que lembrar que no formulário no campo URL devemos ingressar a url da Web a qual queremos vincular, que pode estar dentro ou fora de nosso site.

Se estiver dentro de nossa web, à princípio não deveríamos incluir o "http://" ao início do link, porém nós recomendamos fazê-lo, para salvar todas as URL com um formato idêntico e não ter problemas logo na hora de criar os links.

Sendo assim, todas as URL que introduzamos deveriam ser absolutas, estejam ou não dentro de nosso site.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Formulário do buscador



O código para fazer a página com o formulário de busca, onde introduziremos as palavras-chave para buscar.

Por Mario Matías Sebely




Então, carregamos os dados ao nosso banco de dados, já estamos prontos para começar a buscar mediante os dados carregados nela. Para isso, veremos um formulário que nos pedirá que coloquemos uma palavra-chave, e logo passará à página ASP.

O formulário será muito simples, somente terá um campo de texto onde colocaremos a palavra-chave a buscar, vejamos como seria:

Arquivo buscar.htm

<html>

<head>
<title>Busca</title>
</head>
'Post a buscar.asp
<form method="Post" action="buscar.asp">
<body bgcolor="#FFFFCC">
<p align="center"><font face="Tahoma" size="2"><b><i>Coloque Palavra a buscar</i></b></font>

</p>
'observemos esta linha no Name do INPUT, algo muito importante
<p align="center"><input type="text" name="palavra" size="20">

</p>

<p align="center">
<input type="submit" value="Buscar" name="boton1">
<input type="reset" value="Restabelecer" name="boton"></form>
<p> </p>
</body>

</html>





Notarão que fiz uma chamada no Input NAME, porque é isto, já que se mudarmos o nome do mesmo e não o mudamos na página ASP que realiza a busca, que veremos mais adiante, talvez não nos funcione, por isso notem que o INPUT NAME é "Palavra"
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Resultados do buscador



Aqui podemos ver o script ASP para realizar a busca no banco de dados do buscador.

Por Mario Matías Sebely





Passemos à página ASP agora, que é o último passo que nos resta fazer, depois de ter carregado já os dados e visto a palavra a buscar. O código de busca é o seguinte:

Arquivo buscar.asp

<html>

<head>
<title>Buscar dados</title>
</head>

<body bgcolor="#FFFFCC">
'Esta linha dirá os resultados obtidos com a palavra chave
<p><font face="Tahoma" size="2">Resultados obtidos com <strong><%=Request("Palavra") %></strong></font></p>

<%
'realizamos a conexão do Banco de Dados
Dim Conexao,Tabela
Set Conexao=Server.CreateObject("adodb.connection")
Set Tabela=Server.CreateObject("adodb.recordset")
Conexao_Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("base.mdb")
'definimos as variáveis de busca
Dim Temp
'Criamos a sentença SQL que extrai do banco as páginas que têm a palavra que buscamos
'buscando com o operador LIKE obtemos aparições do substring escrito no formulário, entre as palavras-chave

Temp="Select * From Tabela1 Where UCase(pal) like '%" & UCase(Request("palavra")) & "%'"

Tabela.Open Temp, Conexao
If Tabela.BOF And Tabela.EOF Then
%>
'se não encontrara nada nos dá esta mensagem
<p><font face="Tahoma" size="2">Não se encontrou nada com <strong><%=Request("palavra")%></strong> no Banco de Dados</font></p>
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
<%
Else
'aqui começa o Script que nos mostra os resultados,
'se os encontra na tabela
%>
<div align="center"><center>
<table border="1" cellpadding="0" cellspacing="0" width="100%" height="74" bordercolor="#C0C0C0">
<tr>
<td width="28%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Categoria</font></strong>
</td>
<td width="28%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Nome da pagina</font></strong></p>
</td>
<td width="52%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Descrição</font></strong>
</td>
<td width="19%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Url</font></strong></p>
</td>
</tr>
<% While Not Tabela.EOF%>
<tr>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabela.Fields("Categoria")%></font></td>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabela.Fields("Nome")%></font></td>
<td width="52%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabela.Fields("Des")%></font></td>
<td width="19%" bgcolor="#FFCC00" height="51">
;'Convertemos os dados URL no vínculo da palavra IR
<p align="center"><a href="<%=Tabela.Fields("url")%>"><font face="Tahoma" size="2">Ir</font></a>
</tr>
<%
'se encontrar mais de um resultado nos faz uma célula a mais na tabela
Tabela.MoveNext
Wend
Tabela.Close
Conexao.Close
End If
%>
</table>
</center></div>
<p align="center"><font face="Tahoma" size="2">Buscas</font></p>
<p align="center"><font face="Tahoma" size="2">2008</font></p>
<p align="center"> </p>
</body>
</html>
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Bom, este é o código em si, porém também devemos saber compreendê-lo. Se lembrarem, quando fizemos o banco de dados tínhamos inserido vários campos, entre eles Pal e a outra URL, que eram os que talvez lhes tenham desconcertado.

Pois este é uma das palavras-chave, ou seja, pela qual buscará nosso "Buscador" quando tiver que se dirigir ao Banco de dados.

Logo, a URL, que explicávamos na parte de Entrada de Dados. Nesta página não nos mostra a URL, e sim nos mostra a palavra IR, que tem o código HTML para se converter em vinculo em base à URL do Banco de Dados.

Isto é todo o Buscador, estimados leitores. Espero que seja útil para todos.

Até a próxima.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Buscador simples em ASP melhorado



Artigo que comenta como implementar uma série de melhorias no buscador simples para ASP para que aceite critérios de busca com palavras independentes e operadores para relacioná-las.

Por Miguel Angel Alvarez - Tradução de JML





O buscador que se explica no manual Buscador Simples para ASP se pode melhorar, como creio que já comentamos, utilizando o script do artigo Crie seu próprio buscador, que implementava um sistema para que o sistema de busca utilizasse várias palavras-chave e alguns operadores para relacioná-las, como o operador + ou o operador espaço, que querem dizer que há que se relacionar as diferentes palavras-chave com a função lógica AND e OR respectivamente.

O objetivo deste artigo é realizar essa integração de um sistema com o outro e a publicação do script resultante, comentado na medida do possível. O primeiro seria ter claros as duas fontes de informação com as que estamos trabalhando, para o que aconselhamos necessariamente sua leitura compreensiva.
Buscador simples em ASP
Crie seu próprio buscador
Unimos os dois scripts

A página do buscador simples que temos que editar se chama buscar.asp. Para começar, vamos colocar as funções que estão no exercício Crie seu próprio buscador em qualquer parte de buscar.asp, embora preferivelmente na parte de cima. Estas funções, se por acaso alguém não as identifica, são:

function Tirar(cadeia,campos)
Extrai cada um dos campos do critério de busca introduzido e vai relacionando-os segundo os operadores que se utilizaram. Tudo isto se vai colocando em uma sentença em linguagem SQL.

function GeraSql(cadeia,tabela,campos)
Cria a sentencia SQL definitiva.

As descrições completas destas funções e a explicação de suas ações está, mais ou menos realizada no artigo Crie seu próprio buscador.

Editamos o script de buscar.asp para construir uma sentença SQL melhorada

A linha onde antes se construía a sentença SQL (variavel Temp.) a comentamos e a voltamos a fazer de outra maneira.

Primeiro, devemos criar um array com os campos da tabela onde vamos realizar as buscas. O array deve ter uma posição mais das necessárias, porque senão nos falhará o exemplo. Vamos buscar nos campos "Des" e "pal" da tabela, que contém as descrições e palavras-chave de cada um dos registros.

dim campos(3) 'o tamanho do array deve superar em um ao numero de campos
campos(1)="Des"
campos(2)="pal"

Logo extraímos a cadeia de busca do formulário que estamos recebendo
cadeia=Request.form("palavra")

Criamos uma variável com o nome da tabela do banco de dados onde há que buscar.

tabela_bd="Tabela1"

Finalmente, criamos a sentença SQL realizando uma chamada à função GeraSql comentada antes. Salvamos a sentença SQL na variável Temp, que era a variável onde antes tinha salvo a sentença do script buscar.asp original.

Temp=GeraSql(cadeia,tabla_bd,campos)
Nota: Decidi não mudar os nomes das variável para que o exemplo de buscar.asp continuasse funcionando sem problemas.


Já está pronto

Com as mudanças indicadas até agora já temos o exercício terminado. Agora as buscas serão muito mais complexas porque as sentenças SQL é muito mais avançada. As possibilidades deste script se multiplicaram.

O resto do código se deixa como estava. Ao executar a sentença SQL salva na mesma variável Temp, porém que agora está mais avançada se produz um recordset cujo percorrido se realiza da mesma maneira que antes.

Deixei a sentença SQL à vista, imprimido-a na página, para que qualquer pessoa que executar o script possa ver que sentença se está gerando.
 
Topo