Buscador en ASP

Visitando algunos foros de ayuda a webmaster me eh encontrado con que muchos piden algún código o ayuda para armar un buscador dentro de su Web. Búsquedas por aquí búsquedas por allá, tenemos mucha información quizás hasta en nuestras Web.

En el siguiente articulo se detalla los pasos a seguir para la conformación de un buscador simple, espero les sea de ayuda.

Comenzando a armar el buscador

Nos basaremos en 5 puntos en el armado del buscador, uno será la conformación de una base de datos donde almacenaremos toda la información para la posterior búsqueda, luego armaremos un formulario para la carga de datos información para nuestro buscador en HTML, también haremos la Web en ASP que cargara todos los datos de nuestro formulario. Por ultimo veremos el formulario de búsqueda en HTML y finalmente el Buscador en ASP.

La Base de Datos

Haremos una simple base de datos en Access con la cual podremos cargar los datos a luego buscar. Creemos una base de datos la cual llamaremos base.mdb, cuando nos toque la parte de diseño de una nueva tabla ingresemos los siguientes Campos:

Campo Tipo Descripción
nombre Texto nombre del sitio
des Texto descripción del sitio
url Texto dirección del sitio
categoría Texto categoría a la que corresponde
pal Texto palabras claves

Veamos en que consisten estos campos, el primero será el nombre de la Web la cual tenemos en nuestro buscador, la segunda, que es Des, es el equivalente a la descripción de la pagina, un breve comentario, el campo URL, será la url de la Web la cual agregamos a nuestro buscador, campo categoría, esta es opcional, si queremos dividir en categorías a nuestras Web y por ultimo el campo pal, en el cual ingresaremos las palabras clave por la cual buscara nuestro buscador.

Una vez hecha la base de datos, comencemos a cargarla, para eso necesitaremos un formulario HTML, que nos permita cargar los datos, aquí un ejemplo de cómo podría ser uno:

Cargar.htm(*)

<HTML>
<HEAD>
<TITLE>Buscador web</TITLE>
</HEAD>

<!– esta es la accion que hara cuando hagamos clic en el Boton INGRESAR –>
<BODY BGCOLOR="#FFCC00">
<FORM METHOD="Post" ACTION="ingreso.asp">

<!– esto es modificable, lo que debemos dejar siempre es el nombre de el INPUT, que como ´vemos es Dato1, Dato2 etc. –>
<P ALIGN="left"><FONT FACE="Tahoma" SIZE="2"><B><I>Nombre
<INPUT TYPE="text" NAME="Dato1" SIZE="20"> </I></B></FONT></P>
<P ALIGN="left"><FONT FACE="Tahoma" SIZE="2"><B><I>Descripcion <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="Dato3" SIZE="17"></I></B></FONT></P>
<P ALIGN="left"><FONT FACE="Tahoma" SIZE="2"><B><I>Categoria
<!– una lista desplegable con categorías ya predeterminadas, esto tambien lo podemos ´modificar –>
</I></B></FONT>
<SELECT SIZE="1" NAME="Dato4">
<OPTION VALUE="Municipios">Municipios</OPTION>
<OPTION VALUE="Comidas Regionales">Comidas Regionales</OPTION>
<OPTION VALUE="Atractivos Turisticos">Atractivos Turisticos</OPTION>
<OPTION VALUE="Servicios al Turista">Servicios al Turista</OPTION>
<OPTION VALUE="Datos Historicos">Datos Historicos</OPTION>
<OPTION VALUE="Productos Regionales">Productos Regionales</OPTION>
<OPTION VALUE="Eventos Culturales">Eventos Culturales</OPTION>
<OPTION VALUE="Galeria Fotografica">Galeria Fotografica</OPTION>
<OPTION VALUE="Videos">Videos</OPTION>
<OPTION VALUE="Historias y Leyendas">Historias y Leyendas</OPTION>
<OPTION VALUE="Rutas y Caminos">Rutas y Caminos</OPTION>
<OPTION VALUE="Turismo Aventura">Turismo Aventura</OPTION>
<OPTION SELECTED="SELECTED"
VALUE="-Seleccionar-">-Seleccionar-</OPTION>
</SELECT></P>
<P ALIGN="left"><FONT FACE="Tahoma" SIZE="2"><B><I>Palabras Clave <TEXTAREA ROWS="2" NAME="Dato5"
COLS="20"></TEXTAREA></I></B></FONT></P>
<P
ALIGN="left">
</P>
<P ALIGN="center"> <INPUT TYPE="submit" VALUE="Ingresar" NAME="B1">
<INPUT TYPE="reset" VALUE="Restablecer" NAME="B2"> </P> </FORM>
<P ALIGN="center"><FONT FACE="Tahoma" SIZE="2">Buscador Web 2002</FONT></P>
</BODY>
</HTML>

(*) Desde ya vale una aclaración, estas opciones son de un buscador realizado para la Web ConozcaMisiones.com quien WebMaster es el que escribe el artículo.

Si vemos el código HTML en una de las primeras líneas vemos que tenemos un POST, el cual es la página siguiente a la que se ingresara cuando cargamos los datos y damos INGRESAR.

Esta misma se ira a la página ingreso.asp, que es la que cargara los datos a la Base de Datos, veamos el código del mismo y su actuación:

Ingreso.asp

<!– definimos el lenguaje a utilizar –>
<%@ Language="VBScript" %>
<html>
<head>
<title>Ingreso de Datos</title>
</head>
<!– comienza el script –>
<%
‘definimos la variable de conexion
Dim Conexion,Tabla
Set Conexion = Server.CreateObject("ADODB.Connection")
Set Tabla = Server.CreateObject("ADODB.Recordset")
‘conectamos a la base de datos mediante OLE ODBC dando el Driver
Conexion.Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("base.mdb")
‘definimos la variable de carga de datos
Dim Temp
‘buscamos los datos
Temp="Select * From Tabla1 Where UCase(Nombre)=’" & UCase(Request("Dato1")) & "’ And UCase(Des)=’" & UCase(Request("Dato2")) & "’ And UCase(Url)=’" & UCase(Request("Dato3")) & "’ And UCase(Categoria)=’" & UCase(Request("Dato4")) & "’ And UCase(Pal)=’" & UCase(Request("Dato5")) &"’"
Tabla.Open Temp,Conexion,2,3,1
‘si no se repiten agregamos los datos a nuestro buscador
If Tabla.BOF And Tabla.EOF Then
Tabla.AddNew
Tabla("Nombre") = Request("Dato1")
Tabla("des") = Request("Dato2")
Tabla("Url") = Request("Dato3")
Tabla("Categoria") = Request("Dato4")
Tabla("Pal") = Request("Dato5")
Tabla.Update
‘fin del Script
%>

<font face="Tahoma" size="2"><b><i>Ingreso de datos completado</i></b></font></p>
<%
‘si el campo ya existe para no hacer dobles nos da este mensaje
Else
Response.Write "El registro ya existe"
End If
‘cerramos la conexion
Tabla.Close
Conexion.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="ingreso.htm" target="_top">Ingresar
Nuevo</a></i></b></font></p>
</body>
</html>

Observemos bien el script, y centrémonos en la carga de datos, hace un REQUEST de los datos que ingresamos en el formulario, y comprueba que no exista una igualdad en los datos, una vez hecho esto agrega con la sentencia ADDNEW una nueva fila a nuestra base de datos.

Datos para aclarar y recordar

Tenemos que recordar que en el formulario en el campo URL debemos ingresar la url de la Web a la cual queremos vincular, si esta dentro de nuestra Web, por ejemplo si esta dentro de www.mipagina.com y la url de la sección es www.mipagina.com/prueba/prueba.htm simplemente omitimos el www.mipagina.com/ y añadimos prueba/prueba.htm ya veremos el porque de esto. En cambio si se encuentra en otra Web simplemente www.mipagina.com.

Buscando…

Ahora bien, hemos cargado los datos a nuestra base de datos, ya estamos listos como para comenzar a buscar mediante los datos cargados en ella. Para eso veremos un formulario el cual nos pedirá que ingresemos una palabra clave, y luego pasara a la pagina ASP. El formulario será muy simple, solamente tendrá un campo de texto donde ingresaremos la palabra clave a buscar, veamos como seria:

Buscar.htm

<html>

<head>
<title>Busqueda</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>Ingrese Palabra a buscar</i></b></font>

</p>
<!– fijemosnos en esta linea en el Name del INPUT, algo muy importante –>
<p align="center"><input type="text" name="palabra" size="20">

</p>

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

Notaran que eh hecho una llamadita en el Input NAME, porque es esto, ya que si cambiamos el nombre del mismo y no lo cambiamos en la página ASP quizás no nos funcione, por eso noten que el INPUT NAME es Palabra. Pasemos a la pagina ASP ahora que es el ultimo paso que nos queda por hacer luego de haber ya cargado los datos y ya puesto la palabra a buscar, el código de búsqueda es el siguiente:

Buscar.asp

<html>

<head>
<title>Buscar datos</title>
</head>

<body bgcolor="#FFFFCC">
<!– Esta linea nos dira los resultados obtenidos con la palabra clave –>
<p><font face="Tahoma" size="2">Resultados obtenidos con <strong><%=Request("Palabra") %></strong></font></p>

<%
´realizamos la conexión de la Base de Datos
Dim Conexion,Tabla
Set Conexion=Server.CreateObject("adodb.connection")
Set Tabla=Server.CreateObject("adodb.recordset")
Conexion.Open "Driver={Microsoft Access Driver (*.mdb)}; " & "Dbq=" & Server.MapPath("base.mdb")
‘definimos las variables de busqueda
Dim Temp,Rango
Rango=Request("Tipo")
If Rango="1" Then
‘En la Tabla la palabra que buscamos
Temp="Select * From Tabla1 Where UCase([pal])=’" & UCase(Request("palabra"))’"
Else
Temp="Select * From Tabla1 Where InStr(UCase([pal]),’" & UCase(Request("Criterio")) & "’)>0"
End If
Tabla.Open Temp, Conexion
If Tabla.BOF And Tabla.EOF Then
%>
<!– si no encuentra nada nos da este mensaje –>
<p><font face="Tahoma" size="2">No se ha encontrado nada con <strong><%=Request("palabra")%></strong> en la Base de Datos</font></p>

<!– aquí comienza el Script que nos muestra los resultados, si los encuentra, en una tabla –>
<%
Else
%>
<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">Nombre de la pagina</font></strong></p>
</td>
<td width="52%" height="19">
<p align="center"><strong><font face="Tahoma" size="2">Descripcion</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 Tabla.EOF%>
<tr>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Categoria")%></font></td>
<td width="28%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Nombre")%></font></td>
<td width="52%" bgcolor="#FFCC00" height="51">
<p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Des")%></font></td>
<td width="19%" bgcolor="#FFCC00" height="51">
<!– Convertimos los datos URL en el vinculo de la palabra IR –>
<p align="center"><a href="<%=Tabla.Fields("url")%>"><font face="Tahoma" size="2">Ir</font></a>
</tr>
<%
‘si encuentra mas de un resultado nos hace una celda mas en la tabla
Tabla.MoveNext
Wend
Tabla.Close
Conexion.Close
End If
%>
</table>
</center></div>
<p align="center"><font face="Tahoma" size="2">Busquedas</font></p>
<p align="center"><font face="Tahoma" size="2">2002</font></p>
<p align="center"> </p>
</body>
</html>

Bien, este es el código en si, pero también debemos saber comprenderlo. Si recuerdan cuando hicimos la base de datos habíamos insertado varios campos, entre ellos Pal y el otro URL, que eran los que quizás los hayan desconcertado.

Pues estos es uno el de las Palabras clave, ósea, por el que buscara nuestro "Buscador" cuando tenga que dirigirse a la Base de datos.

Luego la URL, que explicábamos en la parte de Ingreso de Datos. En esta pagina no nos muestra la URL sino que nos muestra la palabra IR, que tiene el código HTML para convertirse en vinculo en base a la URL de la Base de Datos.

Esto es todo el Buscador estimados lectores. Espero que les sea de utilidad. Hasta la próxima.

Deja un comentario