recherche avec et sans accent

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : recherche avec et sans accent

Re: recherche avec et sans accent

par Frédéric Brouard - SQLpro » 21 mars 2010, 15:38

Pour faire cela vous devez utiliser une clause COLLATE (norme SQL)
Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqls ... ollations/

Exemple :
SELECT ... 
FROM... 
WHERE prenom LIKE '%".$motcle."%' COLLATE French_CI_AI
A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies
*********************** http://www.sqlspot.com *************************

Re: recherche avec et sans accent

par ouckileou » 17 mars 2010, 12:04

Quel est le SGBD utilisé ? Peut-on avoir la structure de la table concernée ?

recherche avec et sans accent

par Invité » 12 mars 2010, 20:23

Bonjour!
Voila j'ai un petit problème pour mon moteur de recherche.
Ma base de donnée contient certain mots (des prénoms et nom) et j'aimerai que lors de la recherche même si l'utilisateur tape un mot sans accent, tous les résultats ressorte sans prendre en compte les accents insérer dans la base...
Exemple : Stéphane contenu ds la base devrai ressortir si l'internaute le tappe avec ou sans accent

Actuellement ma requête est la suivante : "SELECT ... FROM... WHERE prenom LIKE '%".$motcle."%' "

Donc si on tappe le mot avec accent il ressort, mais sans accent... aucun résultat...

Je sais qu'il existe REGEXP qui remplace LIKE mais le problème c'est que dans ma base de donnée les lettres accentué sont en latin .... et donc c'est inscrit "stéphane" dans la bdd.
Il faudrait donc convertir ds la requete le mot au moment de la recherche en utf8, mais le probleme c'est que je vois pas du tout comment faire .. j'ai chercher en vain sur google j'ai trouver quelque chose qui parle de collation mais je ne vois pas du tout comment sa s'utilise

Si quelqun pouvais me guider sa serait pas de refus =P~
MErci bien et bon weekend :)