Libro de Visitas Gratis
Inicio | Directorio de Páginas | Diseño Gráfico | Gadgets | Posicionamiento | Webmasters| Buscador de Artículos | Glosarios

Cómo hacer un buscador en tu web

Añade Tu Web Al Directorio de NocionDigital.com
A lo largo de que vamos incluyendo material en nuestra web, además de clasificarlos correctamente, si nos ponemos en el lugar del visitante que busca "algo en especial", necesitarás un BUSCADOR INTERNO ¡No te asustes!, sigue leyendo que en pocos minutos aprenderás a crear uno...

Empecemos con la base de datos; tenemos dos formas de hacerlo, que el usuario busque en la DESCRIPCIÓN del registro de la base de datos (por ej. Un artículo), esta descripción es la que aparece junto al título en los resultados de la búsqueda. O la otra alternativa (la que usaremos en el artículo) es hacer un campo PALAC (es decir PALABRAS CLAVE), en el que el usuario busca palabras clave de cada "objeto" (registro)

¡Manos a la obra! Empecemos abriendo Microsoft Access; creemos una nueva tabla en modo DISEÑO, tal como lo muestra la figura


Figura 1: los campos y el tipo de campo que necesitamos

Ahora los tamaños del campo le asignamos:
PALAC: 180 caracteres máximo
Link: 80 caracteres máximo
Titulo: 80 caracteres máximo

OK, ahora viene la parte más "fea" del asunto, ingresar todo en la base de datos, (ver Figura 2)


Figura 2: Ingresamos los datos

Ahora vayamos a ASP, abran su editor HTML, o el simple notepad, lo que ustedes quieran, lo importante es que se vea el código de fuente, yo particularmente uso Dreamweaver.
Creamos el archivo que se llame BUSCAR.ASP (aunque por ahora sólo tiene HTML), su contenido es



<html>
<head>
<title>Buscar</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000"><center>
<b><font size="5">MI BUSCADOR</font></b>
<form name="form1" method="post" action="Buscar.asp">
<input type="text" name="textfield">
<input type="submit" name="Submit" value="Buscar!">
</form></center>
</body>
</html>



Ahora sólo contiene el formulario, pero veamos ¿cómo podemos impelemntar el ASP? Muy fácil, como podemos observar el código el formulario tiene como "ACTION" buscar.asp, es decir el mismo archivo, ahora vamos a ver como recibimos a la colección Request.form para saber la palabra a buscar;



<%
Dim buscar
buscar = Request.Form("textfield")
%>



¿Fácil, no? Ahora, donde queramos que aparezcan los resultados, vamos a poner el siguiente código (no te preocupes, ahora te enseñamos como funciona):



<%
Function fBuscar(cnn)
Dim rs
Dim SQL
Dim str
SQL="SELECT Titulo, Comentarios, PALAC, Link FROM Busqueda WHERE PALAC LIKE ´%"&buscar&"%´;"
Set rs = CreateObject("ADODB.Recordset")
rs.ActiveConnection = cnn
rs.Open SQL
While Not rs.EOF
str = str & "<A Class=´t5´ Href=´" & rs("Link") & "´>" & rs("Titulo") & " >> <br>" & "</a>" & rs("Comentarios")& "<BR> <BR>"
rs.MoveNext
Wend
if str = "" then str ="<CENTER><B>Lo siento, no se encontraron resultados</B></CENTER>"
if buscar = "" then str ="<CENTER><B>Por favor, especifique su búsqueda</B></CENTER>"
fBuscar = str
End Function
Dim cnn
Dim str
Set cnn = CreateObject("ADODB.Connection")
str = "Data Source=Pafware"
cnn.Open str
Response.write "<FONT COLOR=Blue "
Response.write "SIZE=4 FACE=Arial> "
Response.write "Resultados "
Response.write "de la busqueda: <P>"
Response.write "</FONT> "
Response.write "<FONT COLOR=Green "
Response.write "SIZE=3 FACE=Arial> "
Response.Write fBuscar(cnn)
Response.write "</FONT><hr> "
%>



Bueno, analicemos un poco el funcionamiento de esto:
El foco del programa entra donde declaramos las variables CNN y STR las cuales declaramos como conexión la Base de Datos, y a STR le damos el valor de la cadena que luego usaremos para darle como parámetro a CNN.OPEN. Luego escribimos "Resultados de la búsqueda:" y llamamos la la función fBuscar, y le pasamos como parámetro nuestro objeto de conexión (CNN).
Definimos RS, SQL y STR, usaremos RS para el RecordSet, SQL para la sentencia SQL, y STR para depositar toda la información que saquemos del recordset.
Tomémonos un minuto para analizar el corazón de nuestro buscador, la sentencia SQL;



SQL="SELECT Titulo, Comentarios, PALAC, Link FROM Busqueda WHERE PALAC LIKE ´%"&buscar&"%´;"


Aquí le decimos a SQL que tome (SELECT) los campos Titulo, Comentarios, PALAC y LINK de la tabla BUSQUEDA donde (WHERE) PALAC contenga (LIKE) algo como el valor de la variable buscar (que contiene la cadena a buscar).
Ahora abrimos el RecordSet con la sentencia SQL, y obviamente, nos devuelve los resultados



rs.Open SQL



Bueno, nos queda sólo mostrar los resultados obtenidos, los atravesamos con un bucle For Each, mostrando cada registro y sus campos, por ej. rs("Titulo") tendría el valor de titulo del registro actual



While Not rs.EOF
str = str & "<A Class=´t5´ Href=´" & rs("Link") & "´>" & rs("Titulo") & " >> <br>" & "</a>" & rs("Comentarios")& "<BR> <BR>"
rs.MoveNext
Wend



De esta forma podemos observar como almacenamos registro por registro encontrado en la variable STR, (en formato Titulo (linkeado) >> <br> Comentarios <br><br>)

Bueno, llegado a este punto se preguntarán ¿ya está, no?, bueno, la respuesta es no, aún nos quedan cosas por hacer ¿qué para si no se encontraron resultados, no podemos dejar que "no pase nada"? ¿qué pasa si el usuario ingresa una cadena nula, es decir ""? Esto lo arreglamos con:


if str = "" then str ="<CENTER><B>Lo siento, no se encontraron resultados</B></CENTER>"
if buscar = "" then str ="<CENTER><B>Por favor, especifique su búsqueda</B></CENTER>"



Bueno, podemos ver que esto hace que si STR sea = "", es decir, que no se encontraron resultados, le asigne el valor "Lo siento, no se encontraron resultados" o que si la cadena a buscar no contiene nada, muestre "Por favor, especifique su búsqueda".

Bueno, les dejo el código completo ;) así lo copian y pegan en su web...



<html>
<head>
<title>Buscar</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<%
Dim buscar
buscar = Request.Form("textfield")
%>

<body bgcolor="#FFFFFF" text="#000000"><center>
<p><b><font size="5">MI BUSCADOR</font></b> </p>
<%
Function fBuscar(cnn)
Dim rs
Dim SQL
Dim str
SQL="SELECT Titulo, Comentarios, PALAC, Link FROM Busqueda WHERE PALAC LIKE ´%"&buscar&"%´;"
Set rs = CreateObject("ADODB.Recordset")
rs.ActiveConnection = cnn
rs.Open SQL
While Not rs.EOF
str = str & "<A Class=´t5´ Href=´" & rs("Link") & "´>" & rs("Titulo") & " >> <br>" & "</a>" & rs("Comentarios")& "<BR> <BR>"
rs.MoveNext
Wend
if str = "" then str ="<CENTER><B>Lo siento, no se encontraron resultados</B></CENTER>"
if buscar = "" then str ="<CENTER><B>Por favor, especifique su búsqueda</B></CENTER>"
fBuscar = str
End Function
Dim cnn
Dim str
Set cnn = CreateObject("ADODB.Connection")
str = "Data Source=Pafware"
cnn.Open str
Response.write "<FONT COLOR=Blue "
Response.write "SIZE=4 FACE=Arial> "
Response.write "Resultados "
Response.write "de la busqueda: <P>"
Response.write "</FONT> "
Response.write "<FONT COLOR=Green "
Response.write "SIZE=3 FACE=Arial> "
Response.Write fBuscar(cnn)
Response.write "</FONT><hr> "
%>
<form name="form1" method="post" action="Buscar.asp">
<input type="text" name="textfield">
<input type="submit" name="Submit" value="Buscar!">
</form></center>
</body>
</html>

 
Hits
DOCUMENTOS RELACIONDOS
1971
Reproducir MP3 según el dia.
2153
Cambiar el formato de la url al enviar varibles.
1760
Mostrar un número con una determinada cantidad de decimales.
1920
Crear archivo XML para sindicación RSS.
4869
Eventos de JavaScript.
1161
Equivalencias de medidas de aceleración.
12964
Código de confirmación en un formulario.
10594
Convertir números a letras.
1316
Introducción al HTML.
3772
Sticky Note, pop-up configurable.
1433
Información de la variable.
1762
Includes.
1618
Efecto de "Trio de colores" persiguiendo el mouse.
1541
Paginas con sonido.
2466
Random de letras.
21350
Insertar página HTML dentro de otra página HTML.
1690
Introducción a DHTML.
2079
Validación de un formulario.
5412
Crear ejecutables en PHP.
3987
Mostrar la fecha en formato "27 de Marzo del 2005".


www.nociondigital.com - Todo para un mundo digital. Páginas Webs, Buscadores y Webmasters....