Buscador

Busca aquí los artículos:

 

RSS Suscríbete al Boletín

Escribe tu correo para recibir nuestro boletín de artículos:

Plan Iniciación

1 Dominio

3 Gb de Tráfico Mensual

2 Bases de datos MySql

250 Mb de espacio Web y Correo

Ilimitadas BD Access

Programación ASP, ASP.Net y PHP

Precio: 5 € / Mes

Ir Plan Inicial

Plan Básico

1 Dominio

8 Gb de Tráfico Mensual

10 Bases de datos MySql

600 Mb de espacio Web y Correo

Ilimitadas BD Access

Programación ASP, ASP.Net y PHP

Precio: 10 € / Mes

Ir Plan Básico

Plan Profesional

1 Dominio

20 Gb de Tráfico Mensual

30 Bases de datos MySql

1,5 Gb de espacio Web y Correo

Ilimitadas BD Access

Programación ASP, ASP.Net y PHP

Precio: 18 € / Mes

Ir a Plan Profesional

Plan Profesional ISP

50 Gb de Tráfico Mensual

50 Bases de datos MySql

4,5 Gb de espacio Web y Correo

Ilimitadas BD Access

Programación ASP, ASP.Net y PHP

Precio: 30 € / Mes

Ir a Plan Profesional ISP

Servidor Linux

Tu servidor dedicado con sistema Linux por 199 € al mes .

 

 

Ver más

Servidor Windows

Tu servidor dedicado con sistema Windows por 210 € al mes .

 

 

Ver más

Registre su dominio ahora

www.

Su dominio en 24 horas
Su propio nombre de dominio en un tiempo record, sin complicaciones ni compromisos.

Crear un buscador en ASP

Feed RSS Estás en ASP Fecha: 16/07/2007

En este artículo os vamos a explicar como crear un buscador en ASP utilizando como base de datos MySQL, un ejercicio muy interesante para vuestros proyectos
Publicidad

Como ya comentamos en el previo, este artículo tratará sobre la realización de un buscador sencillo que ejecutará sus consultas en una tabla MySQL, vamos a mostrar como realizar dos tipos de búsquedas Like y Fulltext.

Para ello, crearemos una tabla llamada "artículos" en la que ubicaremos la información que deseamos buscar, dicha tabla tendrá la siguiente estructura:

Artículos:
ID --> auto_increment
titulo --> char(100)
texto --> text

El proyecto se compondrá de un único archivo, llamado "buscador.asp", donde crearemos tanto el formulario de búsqueda como la tabla de resultados. Dicho esto, vamos a mostrar como debería ser la programación.

Antes de nada, debemos crear la conexión a la base de datos y estableceremos las variables de la aplicación, esto lo haremos de la siguiente manera:

Dim DB, RS1, Palabra, Conex, DataBase, UserBD, PassBD
Set DB = Server.CreateObject("ADODB.Connection")
Set RS1 = Server.CreateObject("ADODB.Recordset")

Conex = "localhost" 'Dirección del servidor de MySQL
Database = "buscador_asp" 'Nombre de la Base de datos
UserBD = "tu_usuario" 'Usuario para acceso a la BD
PassBD = "tu_contraseña" 'Contraseña para acceso a la BD

'Creamos la cadena de conexión
DB.open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & Conex & ";DATABASE=" _
& DataBase & ";USER=" & UserBD & ";PASSWORD=" & PassBD & ";OPTION=3;"

Cabe remarcar que la cadena de conexión utilizada es para el controlador ODBC 3.51 de MySQL, el cual podéis descargar desde aquí.

Una vez creadas las conexiones a la base de datos MySQL, comenzaremos con el código que mostrará el formulario de búsqueda, como vamos a mostrarlo en diferentes partes de nuestra aplicación, crearemos una función que se encargará de enseñarlo cuando nos convenga:

<%
Function MuestraForm
%>
<form action="buscador.asp" method="post">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Palabra o Frase: <input name="palabra" type="text" /></td>
<td><input name="" type="submit" value="Buscar!" /></td>
</tr>
<tr>
<td>
Tipo de búsqueda:<br />

<input name="tipo" type="radio" value="like" /> Like | <input name="tipo" type="radio" value="fulltext" checked="checked" /> FullText</td>
<td></td>
</tr>
</table>
</form>
<%
End Function
%>

Por último, realizamos el código donde irá el listado de artículo, pegamos y luego comentamos que hace cada parte:

'SI LA PÁGINA HA SIDO DEVUELTA CON EL MÉTODO POST, SIGNIFICA QUE ESTAMOS RECIBIENDO UN FORMULARIO.
If Request.ServerVariables("REQUEST_METHOD")="POST" Then

'Primero comprobamos que no venga la palabra vacía.
If Request.Form("palabra")="" Or Request.Form("tipo")="fulltext" And Len(Request.Form("palabra"))<=3 Then
'Si viene la palabra vacía u ocupa menos de 3 caracteres, volvemos a mostrar el formulario.
MuestraForm
Else
'Mostramos el formulario
MuestraForm

'Eliminamos las comillas simples si las hay
Palabra = Replace(Request.Form("palabra"),"'","''")

'Realizamos la búsqueda.
If Request.Form("tipo")="fulltext" Then
'BÚSQUEDA FULLTEXT
SQL = "Select titulo, id, texto, Match(titulo, texto) Against ('" & Palabra & "') As Score " _
& "From articulos Where Match(titulo, texto) Against ('" & Palabra & "') Order By Score DESC;"
Else
'BÚSQUEDA LIKE
SQL = "Select titulo, id, texto From articulos Where titulo Like '%" & Palabra & "%' Order By titulo ASC;"
End If

Rs1.Open SQL, DB
'Comprobamos que hayan resultados.
If Rs1.Eof=False Then
%><br />
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><strong>ID</strong></td>
<td><strong>Art&iacute;culo</strong></td>
</tr>
<%
'Hacemos el bucle que mostrará los resultados.
Do While Rs1.EOf=False
%>
<tr>
<td><%=Rs1("id")%></td>
<td><%=Rs1("titulo")%></td>
</tr>
<tr>
<td colspan="2"><%=Left(Rs1("texto"), 100) & "..."%></td>
</tr>
<tr>
<td colspan="2"><hr /></td>
</tr>
<%
Rs1.Movenext
Loop
%>
</table>
<%
End If
Rs1.Close
End If

'SI NO ENTRA CON ESTE MÉTODO, ES QUE DEBEMOS MOSTRAR EL FORMULARIO DE BÚSQUEDA.
Else
MuestraForm
End If

Como podemos ver, la aplicación tiene un IF inicial donde filtra si la página está en estado "Post", es decir, si se recibe un formulario o no. Si recibe un formulario, automáticamente intentará realizar la búsqueda, pero antes realiza un par de comprobaciones, como por ejemplo, si la frase viene vacía o mide menos de tres caracteres. La comprobación de los tres caracteres la hacemos porque las búsquedas FullText obligan a que sea la longitud mínima de cadena.

Una vez realizado esto, la aplicación filtra si el tipo de búsqueda es Like o FullText, y construye la consulta correspondiente. Tras abrir la consulta, realiza un bucle para mostrar los resultados.

Para que todo quede más claro, os dejo el archivo con los ejemplos y el fichero con la base de datos.

Winrar Descargar ejemplo

 

Lecturas: 2005

Artículos Relacionados

MySQL: La Base de datos perfecta

Fecha: 17/06/2007

Todos sabemos que MySQL es uno de los mejores sistemas de bases de datos, pero ¿cómo podemos construir la base de datos más rápida?. Hay que tener en cuenta una serie de factores importates.

¿Qué es mejor Like o FullText?

Fecha: 13/04/2007

Cuando debemos buscar entre una gran cantidad de datos, la búsqueda con el comando Like se hace tediosa, debemos comenzar a utilizar las búsquedas FullText.

Coincidencias de la Base de Datos

ASk.com renueva su buscador

Fecha: 08/06/2007

Parece ser que Ask.com ha dejado atrás el típico listado de 10 enlaces ya visto por todos en los buscadores más famosos, ha llegado la hora de renovarse.

Crear un Autorespondedor a un Cuenta de Correo

Fecha: 21/06/2007

Si tiene previsto irse de vacaciones y durante su ausencia no podrá consultar su correo puede dejar un aviso de ausencia por vacaciones que se enviará de forma automática a todos los contactos que le hayan enviado correos durante su ausencia.

Crear una cuenta de Redirección de Correo

Fecha: 21/06/2007

Algunas veces necesitamos de realizar un filtro en el correo que recibimos o quizas tenemos mas de cuenta de correo, pero queremos que todos nuestros correos se reciban en una única cuenta de Correo, o de una única cuente se reenvie a multiples cuentas.

Crear y Eliminar Cuentas de correo en Plesk

Fecha: 21/06/2007

Si desea tener una dirección de email asociada con un sitio, como por ejemplo tunombre@dominio.com, debe crear un buzón de correo desde el panel Plesk. También podrá eliminar estas cuentas con 2 clicks de ratón

Comentarios de los Usuarios (0)

Este artículo ya ha superado la fecha máxima para escribir comentarios, 1 año.


Hosting y Alojamiento Web