> Manuales > Buscador simple en ASP

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.

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.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual