Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] búsqueda en BD despreciando tildes con PHP y phpMyAdmin

Estas en el tema de búsqueda en BD despreciando tildes con PHP y phpMyAdmin en el foro de PHP en Foros del Web. Buenas, Se que es un tema que sale a menudo... pero no he conseguido que funcione con nada de lo que he encontrado hasta el ...
  #1 (permalink)  
Antiguo 29/01/2016, 03:55
 
Fecha de Ingreso: enero-2016
Ubicación: Euskal Herria
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
búsqueda en BD despreciando tildes con PHP y phpMyAdmin

Buenas,

Se que es un tema que sale a menudo... pero no he conseguido que funcione con nada de lo que he encontrado hasta el momento
El caso es que estoy haciendo modificaciones sobre una BD ya creada... y necesito crear un buscador... y el problema... como casi siempre son las tldes!

Los campos en los que tengo que buscar son de tipo text con codificación utf8_general_ci

He intentado lo que he visto en otros hilos:
Select * from XXX WHERE campoBD like _utf8 '%$termino%' collate utf8_unicode_ci

pero no me funciona! de echo si a %termino no le hago antes un:
$termino = htmlentities($termino)

ni si quiera me busca la palabra con tildes, ya que en el campo de la base de datos la información está guardada con &aactute;

Ejemplo:
  • si busco "camion" --> no encuentra nada
  • Si busco "camión" (sin hacer htmlentities("camión") --> no encuentra nada
  • Si busco camión y le paso por htmlentities --> si encuentra (porque en la base de datos está guardado "camión"


ideas?? propuestas??

muchas gracias a todos
  #2 (permalink)  
Antiguo 29/01/2016, 05:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: búsqueda en BD despreciando tildes con PHP y phpMyAdmin

Bueno... por empezar, aclaremos que si en tu base de datos, la palabra "camión" está almacenada como "camión", entonces tienes datos basura en tu base.
La base de datos no entiende HTML, como tampoco entiende PHP, Java o ningún lenguaje de programación o de marcado. Sólo entiende SQL, y en este la igualdad entre dos palabras debe ser igual que en el lenguaje natiural.
Es obvio, de acuerdo a lo que dices, que el método de ingreso de datos a la base está mal programado, y estás metiendo las palabras incorrectamente. Al haberse corrompido los textos por meterlos como htmlentities, desde ya no sirven para consultas en SQL, salvo que los compares con otra cadena procesada como tal.
La palabra "camión", debería estar almacenada como "camión" en la base. Asi de sencillo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 29/01/2016, 08:35
 
Fecha de Ingreso: enero-2016
Ubicación: Euskal Herria
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: búsqueda en BD despreciando tildes con PHP y phpMyAdmin

Muchas gracias por la aclaración gnzsoloyo. Me había bloqueado (y empecinado) intentando buscar una posible solución a la hora de recuperar los datos (para toquetear lo minimo posible el código escrito)... y no me había fijado que la solución más rápida estaba en el guardado...

muchas gracias pq creo haber encontrado una solución con tu comentario.... aunque el proceso sea más largo :p
  #4 (permalink)  
Antiguo 29/01/2016, 08:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: búsqueda en BD despreciando tildes con PHP y phpMyAdmin

Cita:
muchas gracias pq creo haber encontrado una solución con tu comentario.... aunque el proceso sea más largo :p
Y bue!...
Cuando los datos se corrompen en la base, toda solución se vuelve complicada. Es inevitable.

Lo mejor sería procurar resolver todo lo que esta mal en la programación, y al mismo tiempo generar una solucion por script en SQL para la base de datos que corrija lo que está mal.

Espero que puedas resolverlo bien. Cualquier duda, pregunta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: bases-de-datos, buscador, buscador-php, busquedas, php+base+de+datos, phpmyadmin, sql, tildes
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 23:20.