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

Buscador PHP & MySQL con Mayúsculas & Minúsculas

Estas en el tema de Buscador PHP & MySQL con Mayúsculas & Minúsculas en el foro de Mysql en Foros del Web. Hola muchacho/as... Estoy intentando desarrollar un buscador con PHP & MySQL Un buscador de palabras o frases en un índice FULLTEXT que involucra tres campos ...
  #1 (permalink)  
Antiguo 19/07/2011, 18:11
 
Fecha de Ingreso: octubre-2006
Ubicación: The Far West, Buenos Aires
Mensajes: 262
Antigüedad: 17 años, 5 meses
Puntos: 28
Pregunta Buscador PHP & MySQL con Mayúsculas & Minúsculas

Hola muchacho/as...

Estoy intentando desarrollar un buscador con PHP & MySQL
Un buscador de palabras o frases en un índice FULLTEXT que involucra
tres campos de mi tabla...

Funciona perfectamente, peeeeero...no distingue mayúsculas de minúsculas.
O sea que si en alguno de mis campos dice "Pepe" y yo busco "pepe", no da
ningún resultado...

Según leí por ahí la codificación debe ser utf8_bin (porque en binario A y a son
números distintos)

El CREATE de mi tabla respeta este criterio:


Código MySQL:
Ver original
  1. CREATE TABLE`xxxxxxxx` (
  2.  `product_id` int(11) NOT NULL auto_increment,
  3.  `language_id` int(11) NOT NULL,
  4.  `name` varchar(255) collate utf8_bin NOT NULL,
  5.  `meta_keywords` varchar(255) collate utf8_bin NOT NULL,
  6.  `meta_description` varchar(255) collate utf8_bin NOT NULL,
  7.  `description` text collate utf8_bin NOT NULL,
  8.  PRIMARY KEY  (`product_id`,`language_id`),
  9.  KEY `name` (`name`),
  10.  FULLTEXT KEY `name_2` (`name`,`meta_keywords`,`meta_description`)
  11. ) ENGINE=MyISAM AUTO_INCREMENT=155 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

Y luego mi consulta que no distingue Mayúsculas de Minúsculas:

Código MySQL:
Ver original
  1. SELECT c.product_id, c.name, c.meta_keywords, c.meta_description, e.product_id, e.model, e.image , s.category_id ,
  2. MATCH (c.name, c.meta_keywords, c.meta_description)  
  3. AGAINST ('$searchterm' IN BOOLEAN MODE ) AS Score  
  4. FROM $tDescript c
  5.  
  6. INNER JOIN $tProduct e ON c.product_id = e.product_id
  7. INNER JOIN $tCat     s ON c.product_id = s.product_id
  8.  
  9. WHERE MATCH (c.name, c.meta_keywords, c.meta_description)  
  10. AGAINST ('$searchterm' IN BOOLEAN MODE )  
  11. ORDER BY Score DESC  
  12. LIMIT 0 , 20;

También probé con _ci (case ignore) pero tampoco...

En fin, si alguien me puede echar una mano, agradecido!!!
Saludos!
  #2 (permalink)  
Antiguo 20/07/2011, 15:36
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Buscador PHP & MySQL con Mayúsculas & Minúsculas

Y si a los campos de MATCH les fuerzas UPPER() y tambien al $searchterm??

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Etiquetas: mayusculas, minusculas, 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 20:38.