[RESOLU] requete expression reguliere mysql dans une clause

Eléphant du PHP | 363 Messages

15 août 2014, 13:01

Bonjour,

J'ai mis en place un petit annuaire de prénoms et voudrais tout gérer sur une colonne sql avec une expression régulière mais je n'y arrive pas.

Pour les prénoms comme Alain, Damien...pas de soucis dans ma recherche.

Par contre les prénoms comme Émilie, Pierre-André, José, Frédéric... me posent problème.

Je voudrais écrire une requête sql qui ne tiennent pas compte des accents et autres caractères spéciaux pour remontrer à coup sûr José si je tape jose ou bien Pierre-André quand je tape "pierre andre". Je ne sais pas si je suis claire...

J'ai fait ceci mais je ne comprends bien ce que je veux en fait :?
SELECT * FROM eleves WHERE prenom REGEXP "/^[A-Za-z]+$/" LIKE "'.$saisie.'%"

C'est bon ? C'est sensé faire quoi ? C'est surement moi mais je ne trouve pas d'infos claires

Fée
Dis-donc fossoyeur, t'as une dent contre moi ou quoi ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 août 2014, 17:32

salut,

ton expression régulière va chercher quelque chose qui contient des lettres 'minuscule et ou majuscule" du coup les prénoms composés avec tiret ou avec accent sont forcément exclus.

la il faut que tu trouve une solution différente, comme une table d'équivalence (pr exemple écrite en minuscule sans accent et que tu rentre a chaque insertion.
lors du select il faut que tu fasse subir la même chose à la saisie pour récupérer les choses similaires.

tu peux te pencher aussi sur les soundex (même si dans ton cas je ne sais pas si cela va t'aider.


@+
Il en faut peu pour être heureux ......