Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/08/2013, 18:42
waspeis
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error de Collation en consulta SQL

ambichol

La base de datos contiene 3 tablas (actores, peliculas, pelisactores) de tipo MyISAM y cotejamiento latin1_swedish_ci. La base de datos es de tipo MyISAM y cotejamiento utf8_unicode_ci. La tabla actores tiene los campos id_ac (int), nombre (varchar) y apellidos(varchar) y el cotejamiento de los campos nombre y apellidos es latin1_swedish_ci.

Vi que me daba el error "Illegal mix of collations..." y entonces cambié el cotejamiento de los campos nombre y apellidos de la tabla actores y les puse el mismo cotejamiento que el de la base de datos (utf8_unicode_ci) para evitar el error. Sin embargo no me da ningún resultado cuando hago una búsqueda con una palabra que contiene una vocal acentuada.


jurena

La collation de la BD es utf8_unicode_ci. A qué te refieres con que el charset debe ser utf8?. Tengo que modificar los collation de los campos de las tablas y los collation de las tablas para que sean todos utf8?

El archivo php donde se hace la búsqueda tenía codificación ANSI. Lo he puesto en UTF-8 y he dejado la base de datos tal como estaba al principio, todos los cotejamientos los he dejado en latin1_swedish_ci menos el cotejamiento de la base de datos que estaba en utf8_unicode_ci.

He probado y ahora si escribo en el buscador la palabra Mélanie me sale como resultado la actriz Mélanie Thierry. No obstante si escribo la palabra Melanie me sale el mismo resultado.

Mejor que antes está, al menos la búsqueda me da resultado si escribo la palabra con tilde o sin ella. Pero se podría poner para que de resultado sólo si se escribe la palabra acentuada?

Ya que estamos... qué tipo de codificación es conveniente elegir ANSI o UTF-8?. Ciertamente no me he preocupado de este tema hasta que me ha surgido este pequeño error en la aplicación.

Gracias!