|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2003 Messages : 42 ![]() |
Bonjour à tous,
Voila je bosse donc sur l'intranet de ma société et on se demandais la meilleur facon de pouvoir faire une recherche dans une base de données. Actuellement, si on recherche par exemple "bidon-domi" ben il vaut mieux taper "bidon-domi" ou "bidon" ou "bid" car on recherche avec un like mais on regarde l'orthographe parfaite. Ici on me demande de changer cela pour que si on recherche "bodé-jean joseph" que si on tape "bodé" ou "jean" ou "bodé jean" Mes questions : - Y a t il une fonction en php qui enleve les caractères de type accentué, tirer, ... - Lorsqu'on a le champ taper par l'utilisateur et le champ dans la db vaut il mieux faire cette conversion lors de la comparaison (if) ou alors vaut il mieux stocké du coté de la base de données le champ (nom par exemple) dans un autre champ ou nous avons retirer les caractères spéciaux? J'espere que je me fait bien comprendre. Merci d'avance |
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : septembre 2005 Messages : 1 741 ![]() |
Citation:
Citation:
Sinon pour comparer 2 chaine il y a la fonction levenshtein qui marche assez bien. |
||
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 4 ![]() |
Citation:
le plus simple n'est pas de faire une conversion au niveau du code php, mais directement dans la bdd. Il suffit pour cela d'avoir une base insensible a la casse et aux caracteres accentues. Si cela n'a pas ete fait a la creation de la base, de la table, ou de la colonne, il est possible de changer la collation lors d'une requete SQL. Par exemple pour MySQL: http://dev.mysql.com/doc/refman/5.0/...t-collate.html Il suffit alors d'utiliser un jeu de caractere correspondant a tes besoins. Par exemple latin1_general_ci_ai (ci pour case insensitive et ai pour accent insensitive). |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com