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

Problema en buscador con tildes ( ó, í, etc.)

Estas en el tema de Problema en buscador con tildes ( ó, í, etc.) en el foro de ASP Clásico en Foros del Web. Hola a todos! Ojalá puedan ayudarme, les cuento: Tengo el típico formulario que rescata un datos, y entrega una variable al un archivo ASP que ...
  #1 (permalink)  
Antiguo 29/10/2007, 21:21
Usuario no validado
 
Fecha de Ingreso: julio-2003
Ubicación: <?="www.tuky.cl";?>
Mensajes: 132
Antigüedad: 21 años, 9 meses
Puntos: 4
Problema en buscador con tildes ( ó, í, etc.)

Hola a todos!

Ojalá puedan ayudarme, les cuento:

Tengo el típico formulario que rescata un datos, y entrega una variable al un archivo ASP que procesa la info. Este en un estracto del archivo (omito los validadores, etc.):

Código PHP:
...
keyword Request.Form("txt_materiaBuscar")
...
...
sql "SELECT titulo, descripcion FROM tabla_datos_r WHERE titulo LIKE '%" keyword "%' ORDER BY titulo ASC"
... 
El tema es que todo funciona bien, pero el problema es cuando un usuario busca lo siguiente:

poblacion

ó

población

Los resultados son distintos.

Lo que no sé es como hacer algún filtro para que las búsquedas con tildes (á, é, í, ó, ú) no afecten el resultado....

Alguna sugerencia!!



mil gracias!

tuky.,-
  #2 (permalink)  
Antiguo 30/10/2007, 10:11
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 19 años, 3 meses
Puntos: 8
Re: Problema en buscador con tildes ( ó, í, etc.)

tye recomiendo usar estas funciones

Cita:
Function Acentos(xtexto)
ArrayP = Array("á","é","Ã*","ó","ú","à ","è","ì","ò","ù","a","e","i","o","u","a","e", "i","o","u")
ArrayP2 = Array("a","e","i","o","u","a","e","i","o","u","á" ,"é","Ã*","ó","ú","à ","è","ì","ò","ù")
Largo = Len(xtexto)
For l = 1 To Largo
Caract = Mid(xtexto,l,1)
For x = 0 To Ubound(ArrayP)
If Lcase(Trim(Caract)) = Lcase(Trim(ArrayP(x))) Then Caract = "["&ArrayP(x)&ArrayP2(x)&"]"
Next
NewText = NewText & Caract
Next
Acentos = NewText
End Function
'=================================================
Function Limpiar(xtexto)
ArrayP = Array("el","la","lo","los","las","algún","cierto" ,"otro","mucho","poco","bastante","un","una","unos ","unas","cuál","de","a","e","i","o","u","y","con ","que","qué","or","and","to","%",Chr(34),Chr(39) )
For x = 0 To Ubound(ArrayP)
If Lcase(Trim(xtexto)) = Trim(ArrayP(x)) Then
xtexto = Replace(xtexto,Trim(ArrayP(x)),"")
Session("Comunes") = Session("Comunes") & Trim(ArrayP(x)) & " "
End If
Next
Limpiar = xtexto
End Function
__________________
Mc_Quake

Para ayudar en lo que se pueda:Zzz:
  #3 (permalink)  
Antiguo 30/10/2007, 14:04
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
Re: Problema en buscador con tildes ( ó, í, etc.)

algo similar

Funcion:
Código PHP:
Function Acentos(texto)
    
Dim ComponerTexto
    
For 1 To Len(texto)
        
ComponerTexto Mid(textox1)
        
Select Case ComponerTexto
            
Case "a""à""á""À""Á"    Acentos Acentos "[aàáâÀÁÂ]"
            
Case "e""é""è""È""É"    Acentos Acentos "[eéèêÈÉÊ]"
            
Case "i""ì""í""Ì""Í"    Acentos Acentos "[iìíîÌÍÎ]"
            
Case "o""ò""ó""Ò""Ó"    Acentos Acentos "[oòóôÒÓÔ]"
            
Case "u""ù""ú""Ù""Ú"    Acentos Acentos "[uùúûÙÚÛ]"
            
Case Else                        Acentos Acentos ComponerTexto
        End Select
    Next
End 
Function 
manera de llamarlo:
Cita:
sebusca=lCase(Acentos(sebusca))
:Adios:
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #4 (permalink)  
Antiguo 30/10/2007, 19:04
Usuario no validado
 
Fecha de Ingreso: julio-2003
Ubicación: <?="www.tuky.cl";?>
Mensajes: 132
Antigüedad: 21 años, 9 meses
Puntos: 4
Re: Problema en buscador con tildes ( ó, í, etc.)

Shiryu_Libra miiil gracias!!

Me funcionó a la perfección!

saludos,

tuky.-
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 10:52.