Foros del Web » Programando para Internet » PHP »

Mi buscador no encuentra palabras con tilde.

Estas en el tema de Mi buscador no encuentra palabras con tilde. en el foro de PHP en Foros del Web. Hola, Acabo de terminar un buscador para mi sql y más o menos va como yo quiero, el problema lo tengo cuando quiero buscar en ...
  #1 (permalink)  
Antiguo 16/02/2011, 17:31
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 1 mes
Puntos: 0
Mi buscador no encuentra palabras con tilde.

Hola,
Acabo de terminar un buscador para mi sql y más o menos va como yo quiero, el problema lo tengo cuando quiero buscar en mi base de datos alguna palabra que lleve tilde o eñe entonces, me dice que no existe nada con ese nombre.

¿Alguien tiene alguna idea para solucionarlo?.

Esta es la consulta que utilizo:

Código PHP:
$qry "SELECT * FROM clientes ";
$searchText "";
if(
$_REQUEST['search_text']!=""){
    
$searchText $_REQUEST['search_text'];
    
$qry .=" where ID like '$searchText%' 
            or nombre like '$searchText%' 
            or empresa like '$searchText%'
            or ciudad like '$searchText%'
            or telefono like '$searchText%'
            or email like '$searchText%'
            or fecha like '$searchText%'"
;

Saludos..
  #2 (permalink)  
Antiguo 16/02/2011, 18:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Mi buscador no encuentra palabras con tilde.

Como guardas las tildes en tu base de datos? usas htmlentities()? o las dejas tal como estan, teniendo bien configurado el juego de caracteres (charset) en tus scripts y base de datos?

Si lo haces con htmlentities(), supongo que tendras que aplicarlo tambien a $_REQUEST['search_text'] antes de incluirlo en la consulta, pero los resultados no seran del todo satisfactorios.

Si es lo segundo, no deberias tener problema, MySQL tiene un excelente manejo para que si buscas "mex" puedas encontrar tambien "méx" y viceversa.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 17/02/2011, 15:14
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 1 mes
Puntos: 0
Respuesta: Mi buscador no encuentra palabras con tilde.

Ok!
Gracias Triby, me ha ido bien como tú dices.

Código PHP:
$searchText utf8_decode($_REQUEST['search_text']); 
Una pregunta:

He construido un sencillo buscador para mi db con paginación incluida, mi problema es el siguiente:
Si le pido a mi db que me muestre los resultados de la manera simple, no me da problemas:

Código PHP:
$qry "SELECT * FROM clientes"
Pero si lo hago de manera que me los muestre por orden descendente, al cargar la página, me los muestra sin ningún problema pero, cuando le doy a la opción buscar en la base de datos, no me muestra nada y me da un error de conflicto con like.
El código de más abajo es el que me dá el error:

Código PHP:
$qry "SELECT * FROM clientes ORDER BY id DESC";
$searchText "";
if(
$_REQUEST['search_text']!=""){
    
$searchText $_REQUEST['search_text'];
    
$qry .=" where ID like '$searchText%' 
            or nombre like '$searchText%' 
            or empresa like '$searchText%'
            or ciudad like '$searchText%'
            or telefono like '$searchText%'
            or email like '$searchText%'
            or fecha like '$searchText%'"
;

Saludos y gracias.
  #4 (permalink)  
Antiguo 17/02/2011, 18:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Mi buscador no encuentra palabras con tilde.

Bueno, ese tipo de busqueda supongo que podria consumir muchos recursos, aunque, si no mencionas cual es el error exactamente, va a ser dificil tratar de ayudar, porque a la fecha no me ha tocado encontrarme algo asi.

Rapidamente te cuento que yo tambien hice un buscador de empresas y, para evitar el uso de like en tantos campos, cree uno nuevo que contiene toda la informacion y no da problemas. Tal vez si llegara a tener demasiados registros, entonces pensaria en hacer ese campo en otra tabla que seria exclusiva para busquedas.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 18/02/2011, 01:45
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 1 mes
Puntos: 0
Respuesta: Mi buscador no encuentra palabras con tilde.

Te cuento:
Cuando cargo la página me los ordena descendente
Código PHP:
$qry "SELECT * FROM clientes ORDER BY id DESC"
pero en cuanto le doy a buscar algun nombre, me sale este error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where ID like 'Espejo%' or nombre like 'Espejo%' or empresa like '' at line 1.

Etiquetas: encuentra, palabras, buscadores
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 03:18.