Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ayuda búsqueda en registros con acentos y ñ

Estas en el tema de Ayuda búsqueda en registros con acentos y ñ en el foro de Mysql en Foros del Web. Hola a todos, estoy trabajando con un portal con soporte multi-idioma, en concreto español, inglés y alemán. Para que no me diera problemas los caracteres ...
  #1 (permalink)  
Antiguo 24/02/2008, 06:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 20
Antigüedad: 16 años, 2 meses
Puntos: 1
Ayuda búsqueda en registros con acentos y ñ

Hola a todos, estoy trabajando con un portal con soporte multi-idioma, en concreto español, inglés y alemán.

Para que no me diera problemas los caracteres alemanes la codificación de mi base de datos está en utf8.

El problema lo tengo a la hora de hacer las búsquedas, necesito que cuando busque una palabra acentuada me la encuentre igualmente si la escribo sin acento.

Ejemplo: Tengo una tabla ciudades, por ejemplo, escribo en el formulario 'Avi'
y me encuentra Avin, Aviles, etc... pero no me encuentra Ávila ya que en la base de datos la tengo guardada con acento.

Gracias de antemano... la verdad es que el tema me tiene bastante agobiado.

Saludos.
  #2 (permalink)  
Antiguo 24/02/2008, 06:49
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: Ayuda búsqueda en registros con acentos y ñ

Ese es el comportamiento por defecto de mysql. Lo que seguramente te está pasando es que no estás eligiendo utf8 como default characterset.

Por ejemplo si estás por línea de comando debes conectarte así:
Código:
mysql -ppass -uroot --default-character-set=utf8
Si trabajas con php llama a esta función una única vez antes inmediatamente después de conectarte:
Código:
mysqli_set_charset($link,"utf8")
Espero que sea simplemente eso, la verdad es que a veces es tedioso todo esto de la codificación.

Buena suerte.
__________________
programación php
  #3 (permalink)  
Antiguo 24/02/2008, 07:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 20
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Ayuda búsqueda en registros con acentos y ñ

No, no me soluciona el problema. Gracias drbit.

Yo, de hecho, en vez de utilizar:

Código PHP:
$db = new mysqli('host''user''pswd''BD');
$query $db->set_charset("utf8"); 
como tu me decías, hacía:

Código PHP:
$db = new mysqli('host''user''pswd''BD');
$query $db->query("SET NAMES 'utf8'"); 
Vamos... que entiendo que es lo mismo... :(

Si alguien sabe como poder solucionar esto ruego me indique...

Gracias de antemano.
  #4 (permalink)  
Antiguo 24/02/2008, 07:45
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: Ayuda búsqueda en registros con acentos y ñ

Otra prueba, sobreescribe el collate agregandolo a la query:

SELECT * from tabla where columna = 'ácéntós' COLLATE utf8_unicode_ci;

Si funciona cambia tu COLLATE por default a ese mismo.

Saludos.
__________________
programación php
  #5 (permalink)  
Antiguo 24/02/2008, 08:02
 
Fecha de Ingreso: febrero-2008
Mensajes: 20
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Ayuda búsqueda en registros con acentos y ñ

Miles de gracias drbit!!.

Así perfecto.

Te debo una.
  #6 (permalink)  
Antiguo 24/02/2008, 14:35
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Ayuda búsqueda en registros con acentos y ñ

Que bien solucionaras tu problema pero para la próxima, por favor NO pongas código de programación en la sección de BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
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

SíEste tema le ha gustado a 1 personas




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