Foros del Web » Programando para Internet » ASP Clásico »

ayuda para optimizar un resultado...

Estas en el tema de ayuda para optimizar un resultado... en el foro de ASP Clásico en Foros del Web. estimados...tengo el siguiente asunto.. tengo un metodo de busquedas por keywords... en una página tengo un input dentro del cual pueden ingresar palabra claves separadas ...
  #1 (permalink)  
Antiguo 23/09/2005, 13:03
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 22 años, 1 mes
Puntos: 9
ayuda para optimizar un resultado...

estimados...tengo el siguiente asunto..



tengo un metodo de busquedas por keywords...

en una página tengo un input dentro del cual pueden ingresar palabra claves separadas por comas (",") con lo cual yo busco en la base de datos por aquellos resultados que coincidan con las palabras...
el problema que tengo es que.. si vienen más de 1 palabra hace lo siguiente

recojo las variables...
las separo en un arreglo de acuerdo a las comas (arrVariables= split(variable, ",")
y luego hago un recorrido para hacer la consulta por cada una de las palabras...
osea
Código:
for i = 0 to ubound(arrKey)
	
	key = trim(arrkey(i))
	
	if sw <> 1  then
	
	set rs=Server.CreateObject("ADODB.Recordset")
    sql = "select extension, titulo, resumen, archivo, autor from kb_biblioteca, kb_keywords where kb_biblioteca.id_archivo = kb_keywords.id_tema and keyword  like '%"&key&"%' and kb_biblioteca.extension <> '"&doc&"'"
      
	  rs.PageSize=TamPagina
      rs.CacheSize=TamPagina
      'Abro el recordset
      rs.Open SQL, Conn, 1, 2
	  if not rs.eof  then
	     rs.AbsolutePage=PaginaActual
   
           ' Abro el recordset

           'Cuento las páginas
         PaginasTotales=rs.PageCount

           'Compruebo que la pagina actual está en el rango
         if PaginaActual < 1 then 
             PaginaActual = 1
         end if
         if PaginaActual > PaginasTotales then
            PaginaActual = PaginasTotales
         end if
      end if

	if PaginasTotales=0 then

           Response.Write("No se encontraron resultados para """)
	   response.write(mensaje&"""")
	    
    else   
          mientras no sea fin de recorset  muetro los resultados
    end if


loop

el problema es que si son dos o mas palabras.. asi encuentre o no rsultados los mensajes se repiten tantas veces como palabras haya ingresado...

por ejemplo : Seguridad, Soldadura, Sol

si no encontró registros....

"no se encontró un resultado para "Seguridad, Soldadura, Sol""
"no se encontró un resultado para "Seguridad, Soldadura, Sol""
"no se encontró un resultado para "Seguridad, Soldadura, Sol""



cuando lo que quiero es que lo haga una sola vez... me podrian ayudar a optimizar esta busqueda?? desde ya mil gracias...
__________________
Buena Vida...
Francisco
  #2 (permalink)  
Antiguo 23/09/2005, 13:08
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Utiliza una bandera y saca la salida a pantalla del ciclo

Código:
ciclo
  if paginasTotales = 0 then
   seEncontro = false
  else
   seEncontro = true
  end if
end ciclo

if no seEncontro then
 imprime no se encontraron resultados
end if

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:50.