Vaya!! strtolower y strtoupper tampoco funcionan con las letras tildadas. Hay que utilizas mb_strtoupper($string, 'UTF-8') y mb_strtolower($string, 'UTF-8');
On 2 dic, 13:14, Fran Moreno <[email protected]> wrote: > En teoría, el LIKE de mysql no diferencia entra mayúsculas y > minúsculas, pero me he encontrado un bug, y es que sí detecta la > diferencia cuando las letras están acentuadas. > Por ejemplo: > Para buscar Sevilla puedo hacerlo buscando Sevilla o sevilla. > Para buscar Cáceres puedo hacerlo buscando Cáceres o cáceres, pero no > Caceres. > Para buscar Álava, no funciona buscarlo por alava, ni álava, ni Alava. > > Un caso opuesto: para encontrar Cáceres no funciona buscarlo como > CÁCERES, pero si como CáCERES. Esto demuestra que el problema está en > las mayúsculas con tilde. > > La recomendación quizás sea aplicar un filtro previo a la búsqueda que > pase a minúscula las palabras mayúsculas acentuadas o viceversa o a > ambas, y realizar dos búsquedas. > > La instrucción de conversión en php es: > $string = str_replace('Á', 'á', $string); //Para letras sueltas > $string = strtolower($string); > $string = strtoupper($string); > > On 1 dic, 17:37, Sergio Villalba <[email protected]> wrote: > > > > > > > > > Un problema que tengo, con mayusculas y minusculas no obtengo los > > mismos resultados... > > > ¿existe alguna opción? > > > Búscando algo de información solo encontrado > > esto:http://foros.cristalab.com/buscador-php-mysql-con-mayusculas-minuscul... > > > Gracias por todo, un saludo. > > > El día 30 de noviembre de 2011 11:55, Sergio Villalba > > <[email protected]> escribió: > > > > Ok muchas gracias. > > > > PD: para quien le interese, FullText por defecto no realizar búsquedas > > > por 3 caracteres....hay que añadir la siguiente línea en el fichero > > > my.cnf y volver a crear el indice FullText. > > > > [mysqld] > > > ft_min_word_len = 3 > > > > El día 30 de noviembre de 2011 10:22, Fran Moreno > > > <[email protected]> escribió: > > >> Puedes realizar dos búsquedas, una con '%SAR%' y almacenarla en el > > >> array $importante[] y luego otra con '% SAR %' y almacenarla en el > > >> array $resto[]. > > > >> Despues haces una unión de los dos arrays con la instruccion: > > >> $union = array_unique(array_merge($importante[], $resto[])); > > > >> En el array $union[] quedarían primero los resultados importantes y > > >> después el resto. > > > >> El problema de esta solución es que después no se puede paginar > > >> (creo). > > > >> On 29 nov, 17:31, Sergio Villalba <[email protected]> wrote: > > >>> Hola a tod@s, > > > >>> desde ya Gracias. > > > >>> Mi pregunta esta relacionada con SQL, lo que quiero es clasificar las > > >>> búsquedas que se realizan en un buscador, pongo un ejemplo: > > > >>> En mi caso la palabra "SAR" tiene mayor importancia que "SARDINA", > > >>> aunque puede ser valida.....vaya ejemplo :D > > > >>> Mi consulta SQL actual es: > > > >>> SELECT * FROM tabla WHERE (contenido like '%SAR%' OR titulo like > > >>> '%SAR%') > > > >>> Quiero cambiarla por: > > > >>> SELECT * FROM tabla WHERE ((contenido like '% SAR %') OR (contenido > > >>> like '%SAR%') OR (titulo like '% SAR %') OR (titulo like '%SAR%')) > > > >>> Lo que quiero es añadirle una condicionante para clasificar lo > > >>> resultados que para mí son más importantes con la siguiente > > >>> condicionante: > > > >>> - Si encuentra algo que sea "%espacio SAR espacio%" valor es 1. > > >>> - Si encuentra algo que sea "%SAR%" valor es 2. > > > >>> Por último, mi consulta la ordenaría por este valor 1 y 2 llamador > > >>> norder y por titulo. > > > >>> Que tipo de orden puedo utilizar en SQL para realizar lo que > > >>> necesito...mi bbdd es MySQL. > > > >>> Gracias por todo. Un saludo. > > > >> -- > > >> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de > > >> Grupos de Google. > > >> Para publicar una entrada en este grupo, envía un correo electrónico a > > >> [email protected]. > > >> Para anular tu suscripción a este grupo, envía un correo electrónico a > > >> [email protected] > > >> Para tener acceso a más opciones, visita el grupo > > >> enhttp://groups.google.com/group/cakephp-es?hl=es. -- Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google. Para publicar una entrada en este grupo, envía un correo electrónico a [email protected]. Para anular tu suscripción a este grupo, envía un correo electrónico a [email protected] Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.
