Foros del Web » Programando para Internet » PHP »

problema con acentos en la busqueda

Estas en el tema de problema con acentos en la busqueda en el foro de PHP en Foros del Web. hola a todos: tengo el siguiente problema, estoy haciendo un administrador de contenidos en php y sql server 2000 y resulta que la información que ...
  #1 (permalink)  
Antiguo 27/03/2006, 21:44
Avatar de mauricio2004  
Fecha de Ingreso: marzo-2004
Mensajes: 264
Antigüedad: 20 años
Puntos: 0
problema con acentos en la busqueda

hola a todos:


tengo el siguiente problema, estoy haciendo un administrador de contenidos en php y sql server 2000 y resulta que la información que se encuentra ya grabada en la base de datos esta con acentos y mayusculas, ahora quiero hacer una busqueda y resulta si en la base de datos se encuentra la palabra "comunicación" y en el patron de busqueda le escribo "comunicacion", no me la encuentra ya que esta muy sencible la busqueda.

tambien pasa lo mismo con las mayusculas, alguien sabe como arreglar este problema

Saludos


Mauricio
  #2 (permalink)  
Antiguo 27/03/2006, 22:26
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Primero que nada yo diría que es un tema para ir en el foro de base de datos... de todas formas te comento más a omenos por donde viene el tema. Si no me equivoco una de las opciones de los campos cuando armas tu tabla en la DB es algo así BINARY (o parecido) en MySql esto define si el campo es case sensitive (si diferencia entre mayusculas y minusculas), esto sería algo que tendrias que revisar en tu tabla, realmente no estoy seguro si una ves que la tabla tiene registros se puede cambiar pero tendrias que preguntar en el foro correspondiente (seguro que ahí te responde con más propiedad que yo). Otra cosa que no me quedo claro (es medio confuso tu post, o por lo menos para mi) es si tienes problemas con los acentos, si los tienes tendrias que revisar la codificación de la DB, tendria que ser LATIN1 o ISO-8859-1 (creo que era esta, verificalo), o podria ser UTF-8 que permite todo "tipo" de caracteres (por ejemplo, japoneses, arabes, etc) pero para agregar datos en una DB codificada en UTF-8 vos antes de insertarlos a la DB tenes que codificarlos a esté, en PHP está la función utf8_encode() para hacerlo.

Saludos y suerte.
  #3 (permalink)  
Antiguo 27/03/2006, 22:28
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 2 meses
Puntos: 0
pues creo que las única opciónes que vas a tener son:

hacer a mano los reemplazos de las posibles vocales con acento, usando str_replace o expresiones regulares, eso como vos prefieras, sobre la cadena buscada antes de ejecutar la consulta a la base de datos

usar SOUNDEX para hacer la selección directamente en la base de datos, pero no estoy seguro si sql server lo soporta, pero no creo que pierdas nada con probar. para usarla simplemente en la consulta en vez de usar WHERE micampo LIKE 'comunicación' usás WHERE SOUNDEX(micampo) LIKE SOUNDEX('comunicación'). si querés más info sobre SOUNDEX podés ver este http://www.programacion.com/bbdd/codigo/118/ simple ejemplo o hacer una búsqueda en google

espero que te sirva, bye
  #4 (permalink)  
Antiguo 26/01/2008, 15:41
 
Fecha de Ingreso: enero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: problema con acentos en la busqueda

También puedes cambiar la intercalación directamente en la consulta para que sea insensible a acentos.

ej:

SELECT * FROM mitabla WHERE micampo LIKE '%pálábrá%' COLLATE Modern_Spanish_CI_AI


saludos
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 17:31.