Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Buscador simple en ASP mejorado


Artículo que comenta como implementar una serie de mejoras en el buscador simple para ASP para que acepte criterios de búsqueda con palabras independientes y operadores para relacionarlas.


16/10/02 - El buscador que se explica en el manual Buscador Simple para ASP se puede mejorar, como creo que ya comentamos, utilizando el script del artículo Crea tu propio buscador, que implementaba un sistema para que el sistema de búsqueda utilizase varias palabras clave y algunos operadores para relacionarlas, como el operador + o el operador espacio, que quieren decir que han de relacionarse las distintas palabras clave con la función lógica AND y OR respectivamente.

El objetivo de este artículo es realizar esa integración de un sistema con el otro y la publicación del script resultante, comentado en la medida de lo posible. Lo primero sería tener claros las dos fuentes de información con las que estamos trabajando, para lo que aconsejamos necesariamente su lectura comprensiva.

Unimos los dos scripts

La página del buscador simple que tendremos que editar se llama buscar.asp. Para empezar, vamos a colocar las funciones que hay en el ejercicio Crea tu propio buscador en cualquier parte de buscar.asp, aunque preferiblemente en la parte de arriba. Estas funciones, por si alguien no las identifica, son:

function Sacar(cadena,campos)
Extrae cada uno de los campos del criterio de búsqueda introducido y los va relacionando según los operadores que se han utilizado. Todo esto lo va volcando en una sentencia en lenguaje SQL.

function GeneraSql(cadena,tabla,campos)
Crea la sentencia SQL definitiva.

Las descripciones completas de estas funciones y la explicación de sus acciones está, más o menos realizada en el artículo Crea tu propio buscador.

Editamos el script de buscar.asp para construir una sentencia SQL mejorada

La línea donde antes se construía la sentencia SQL (variable Temp.) la comentamos y la volvemos a hacer de otra manera.

Primero debemos crear un array con los campos de la tabla donde vamos a realizar las búsquedas. El array debe tener una posición más de las necesarias, porque si no nos fallará el ejemplo. Vamos a buscar en los campos "Des" y "pal" de la tabla, que contienen las descripciones y palabras clave de cada uno de los registros.

dim campos(3) 'el tamano del array debe superar en uno al numero de campos
campos(1)="Des"
campos(2)="pal"

Luego extraemos la cadena de búsqueda del formulario que estamos recibiendo
cadena=Request.form("palabra")

Creamos una variable con el nombre de la tabla de la base de datos donde hay que buscar.

tabla_bbdd="Tabla1"

Finalmente creamos la sentencia SQL realizando una llamada a la función GeneraSql comentada antes. Guardamos la sentencia SQL en la variable Temp, que era la variable donde antes se había guardado la sentencia del script buscar.asp original.

Temp=GeneraSql(cadena,tabla_bbdd,campos)

Nota: He decidido no cambiar los nombres de las variables para que el ejemplo de buscar.asp siga funcionando sin problemas.

Ya está todo

Con los cambios indicados hasta ahora ya tenemos el ejercicio terminado. Ahora las búsquedas serán mucho más complejas porque la sentencia SQL es mucho más avanzada. Las posibilidades de este script se han multiplicado.

El resto del código se deja como estaba. Al ejecutar la sentencia SQL guardada en la misma variable Temp, pero que ahora es más avanzada se produce un recordset cuyo recorrido se realiza de la misma manera que antes.

He dejado la sentencia SQL a la vista, imprimiéndola en la página, para que cualquiera que ejecute el script pueda ver qué sentencia se está generando.

Para terminar, os ofrecemos la posibilidad de que descarguéis el archivo buscar.asp modificado.

 Seguir navegando a partir aquí:
+ 2 manuales relacionados
+ 1 categoria relacionada
+ 3 comentarios (Añadir)

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com
URL: http://www.desarrolloweb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de ASP

Dentro de Buscador simple en ASP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en ASP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 3 comentarios revisados

 Comentario de Domi
25/9/03 
Muchísimas gracias, me ha funcionado de maravilla. Tengo sólo una pregunta, la tabla de mi base de datostiene 18.900 registros, la búsqueda se demora y es necesario realizar una búsqueda más rápida, ya organicé alfabéticamente la base, y si mejoró un poco, tal vez usteden saben otro truquito!! Saludos y sigan así :)

 Comentario de JOSE
28/2/05 
Funciona perfercto el buscador. Muchisimas gracias. Solo una consulta:
Cuando le digo que haga una busqueda de una palabra y le pongo un espacio antes o despues de esta, me da un error.
¿Existe alguna manera de solucionar esto?

Muchas gracias !!!

 Comentario de Carlos
01/7/05 
El buscador esta bien pero a mi parecer tiene una pequeña pega. Las busquedas que se obtienen con este metodo son del tipo:

SELECT * FROM busquedas WHERE( apartado1 Like '%palabra1%' OR apartado2 Like '%palabra1%' OR apartado3 Like '%palabra1%') AND ( apartado1 Like '%palabra2%' OR apartado2 Like '%palabra2%' OR apartado3 Like '%palabra2%')

Lo realmente interesante seria que buscar asi:

SELECT * FROM busquedas WHERE( apartado1 Like '%palabra1%' AND apartado1 Like '%palabra2%' AND apartado1 Like '%palabra3%') OR ( apartado2 Like '%palabra1%' AND apartado2 Like '%palabra2%' AND apartado2 Like '%palabra3%') OR ( apartado3 Like '%palabra1%' AND apartado3 Like '%palabra2%' AND apartado3 Like '%palabra3%');

¿Como seria el codigo para este tipo de busquedas?

Añadir un comentario al artículo Añadir un comentario del artículo
  Ir arriba
Manuales relacionados
+Taller de ASP
+Buscador simple en ASP
Categorías
+Scripts en ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia