Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Buscador PHP, un poco mas complejo (https://www.clubdelphi.com/foros/showthread.php?t=69198)

santiago14 01-08-2010 21:30:27

Buscador PHP, un poco mas complejo
 
Buenas, estoy con el siguiente problema:
¿cómo logro que un buscador en una página me devuelva los artículos que tienen palabras acentuadas y no acentuadas?

Explico mejor:

Si en mi buscador ponen la palabra "México" (con acento), la buscará pero solo encontrará los artículos que la contengan, eso está bien, pero excluirá a los artículos que contengan la palabra "Mexico" (sin acento).
Si pongo México o Mexico, el buscador debería encontrar los artículos que contengan México y Mexico. ¿Es eso posible?
Gracias.

roman 01-08-2010 23:27:06

Más que PHP creo que es en la base de datos donde debes buscar. Por ejemplo, en MySQL, yo utilizo el juego de caracteres Latin1 con el cotejamiento CI, que quiere decir case insensitive. Con este cotejamiento, no sólo se trata por igual a mayúsculas y minúsculas, sino también a letras acentuadas y no acentuadas. Con esto, las búsquedas encontrarán todas las coincidencias sin importar ni el caso ni los acentos.

// Saludos

santiago14 01-08-2010 23:49:15

Gracias Román, pruebo tu sugerencia y aviso.
Saludos.

santiago14 02-08-2010 20:45:18

Cita:

Empezado por roman (Mensaje 372267)
Más que PHP creo que es en la base de datos donde debes buscar. Por ejemplo, en MySQL, yo utilizo el juego de caracteres Latin1 con el cotejamiento CI, que quiere decir case insensitive. Con este cotejamiento, no sólo se trata por igual a mayúsculas y minúsculas, sino también a letras acentuadas y no acentuadas. Con esto, las búsquedas encontrarán todas las coincidencias sin importar ni el caso ni los acentos.

// Saludos

Gracias nuevamente Román, estuve haciendo pruebas y la cosa parece funcionar bien.
Ahora, ¿puede hacerse lo mismo con Delphi 7 y Firebird 2.1?

Saludos.

JXJ 25-08-2010 01:42:45

te puede servir esto

Firebird 2.1.2 and UNICODE_CI

Starting with Firebird 2.1.2 (or earlier, at least 2.1.2 is what the Release Notes seem to tell), you can use a new Case Insensitive Collation named UNICODE_CI for the UTF8 character set (Unicode).

So when your default character set is UTF8, your table declaration might look like this:

CREATE TABLE PERSONS (

PERS_ID INTEGER NOT NULL PRIMARY KEY,

LAST_NAME VARCHAR(50) COLLATE UNICODE_CI,
FIRST_NAME VARCHAR(50) COLLATE UNICODE_CI

);

Your Index is a regular index declaration without any specials:

CREATE INDEX IDX_PERSON_LASTNAME ON PERSONS (LAST_NAME);

And your search expressions need no UPPER or whatsoever:

SELECT * FROM PERSONS WHERE LAST_NAME = :SEARCH_STRING

That's it.


lo tome de aqui

http://www.destructor.de/firebird/ca...tivesearch.htm


lo que seria bueno es poder hacer ambas cosas
con un checkbox. habilitado
hacer busqueda sensible mayusculas minusculas, y acentos
y sin habilitar que la busqueda sea case sensitive.


La franja horaria es GMT +2. Ahora son las 13:06:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi