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

Problema al buscar palabras con tilde, lo he intentado todo

Estas en el tema de Problema al buscar palabras con tilde, lo he intentado todo en el foro de Mysql en Foros del Web. Tengo una base de datos con los siguientes charset y collaction: Juegos de caracteres de MySQL: UTF-8 Unicode (utf8) Cotejamiento de las conexiones MySQL: utf8_unicode_ci ...
  #1 (permalink)  
Antiguo 26/05/2012, 14:31
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 3
Problema al buscar palabras con tilde, lo he intentado todo

Tengo una base de datos con los siguientes charset y collaction:

Juegos de caracteres de MySQL: UTF-8 Unicode (utf8)
Cotejamiento de las conexiones MySQL: utf8_unicode_ci
Base de datos: utf8_unicode_ci
tablas: utf8_unicode_ci
campos:utf8_unicode_ci

En el html tengo: charset=UTF-8

Los documentos estan todos guardados con UTF-8 sin bom.

La base de datos usa el motor myisam y fulltext, las busquedas las hago In BOOLEAN MODE, con MATCH AGAINST, y los valores estan entre comillas simples (no hago busquedas exactas).

Pero no me realiza busquedas insensibles a las tildes.

Si en la base de datos tengo: camión y busco camión encuentra la fila, pero si busco camion no.

Al reves tambien, si tengo camion y busco camión no lo encuentra.

Por favor si alguien me pudiese aydar se lo agradeceria, lleva todo el dia buscando info he cambiado los cotejaminetos a utf8_spanish_ci , utf8_spanish2_ci , utf8_general_ci y nada.
  #2 (permalink)  
Antiguo 26/05/2012, 17:51
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problema al buscar palabras con tilde, lo he intentado todo

Bueno pues depues de mucho probar solo hay una forma de que tod funcione, y es muy raro.

Si dejo el charset de los documentos php en ANSI (iso-8859-1) y la base de datos con el charset utf-8 y cotejamiento utf-8 unicode ci funciona todo perfecto, pero... esto no deberia ser asi, ¿no?

me estoy volviendo loco
  #3 (permalink)  
Antiguo 26/05/2012, 17:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema al buscar palabras con tilde, lo he intentado todo

Cita:
utf8_spanish_ci , utf8_spanish2_ci , utf8_general_ci y nada.
Pero no has intentado los utf8_spanish_bin , utf8_spanish2_bin , utf8_general_bin, que son precisamente los que permiten hacer las diferenciaciones...

Me explico: El sufijo "_ci" que tienen los cotejamientos que usaste significa "character insensitive", lo que significa que no diferencia entre mayúsculas, minúsculas o acentuadas (ver Manual de Referencia).
O sea que podrías haber probado la totalidad de las collations con ese sufijo, y el resultado sería el mismo.

El sufijo "_bin", por su parte, significa "binary", e implica que las comparaciones se realizarán por su valor en binario, donde la letra "o" y la "ó" tienen diferente valor.... Y obviamente diferencia entre mayúsculas, minúsculas y acentuadas.

Todo esto que te digo está perfectamente explicado en el manual de referencia, que es el primer sitio que debes consultar cuando te topas con problemas de esta clase, porque no son errores de lógica de consultas, sino error de uso y conocimiento de las reglas del lenguaje.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 26/05/2012, 18:10
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problema al buscar palabras con tilde, lo he intentado todo

Hola, pero lo que necesito es que no diferencie, es decir, si se guarda el valor:

camión.

que encuentre la fila si se busca camion o camión.

Un saludo
  #5 (permalink)  
Antiguo 26/05/2012, 18:29
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problema al buscar palabras con tilde, lo he intentado todo

cuando hago esta consulta :
SHOW VARIABLES LIKE '%character%'


me arroja estos resultado en mi pc:
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

y en el hosting me da este resultado:
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

puede estar el problema en el character_set_server ?
  #6 (permalink)  
Antiguo 26/05/2012, 18:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema al buscar palabras con tilde, lo he intentado todo

OK. Ahora bien, ¿estás seguro de no tener un error de programación? ¿que no estás enviando mal la cadena a buscar?
Porque si estás usando las collation "_ci", entonces no debería hacer diferenciación...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 26/05/2012, 18:56
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problema al buscar palabras con tilde, lo he intentado todo

hola, la consulta para camion es esta:

SELECT id,(MATCH (productos) AGAINST ('+camion' IN BOOLEAN MODE)) AS relevancia FROM tiendas WHERE MATCH (productos) AGAINST ('+camion' IN BOOLEAN MODE)ORDER BY relevancia DESC LIMIT 0,15

para camión es esta:

SELECT id, (MATCH (productos) AGAINST ('+camión' IN BOOLEAN MODE)) AS relevancia FROM tiendas WHERE MATCH (productos) AGAINST ('+camión' IN BOOLEAN MODE)ORDER BY relevancia DESC LIMIT 0,15
  #8 (permalink)  
Antiguo 27/05/2012, 07:10
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problema al buscar palabras con tilde, lo he intentado todo

Bueno ya encontre el problema. Me faltaba el mysql set charset en php
  #9 (permalink)  
Antiguo 27/05/2012, 09:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema al buscar palabras con tilde, lo he intentado todo

Cita:
Iniciado por keko123 Ver Mensaje
Bueno ya encontre el problema. Me faltaba el mysql set charset en php
Bue...!
Al final entonces terminó siendo mas o menos lo que te plantee un poco más arriba.

No te preocupes, no es la primera vez que pasa. Cuando estás trabajando el SQL desde una aplicación, siempre es más factible que haya errores producto del lenguaje de programación, que de SQL. Es la parte difícil de depurar.
Pasa todo el tiempo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 27/05/2012, 14:43
 
Fecha de Ingreso: marzo-2012
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problema al buscar palabras con tilde, lo he intentado todo

pensaba que como especificaba en todos los sitios de la web que estaba usando utf 8 no haria falta añadir esa funcion, pero al final a la desesperada me dio por probar y se soluciono todo.

Etiquetas: palabras, sql, tabla, tilde, todo, campos
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:19.