chocholman
Messages postés21Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention 1 septembre 2005
-
31 août 2005 à 18:08
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 2011
-
1 sept. 2005 à 17:49
Bonjour,
Je réalise un moteur de recherche par php sur une base Oracle7 (oui je sais c'est très vieux mais j'ai pas le choix)
lorsque je tape par exemple le mot "evenement" il me retourne "evenement" mais pas "événement" "évènement" ...
Voila à quoi ressemble ma requête :
$req="SELECT reference_origine, commentaire,
code_commentaire, projet FROM doc_commentaire WHERE commentaire
LIKE '%$tab[0]%' ";
(la chaine de caractère est dans $tab[0])
j'ai essayé avec upper en espérant qu'en mettant tout en maj les accent disparaitraient mais que néni
$req="SELECT reference_origine,
commentaire, code_commentaire, projet FROM doc_commentaire WHERE
upper(commentaire) LIKE upper('%$tab[0]%') ";
J'ai essayé aussi de mettre tous les eéèêëÈÉÊË en e et ensuite detecté
dans le mot la lettre e pour la remplacer par "[eeéèêëÈÉÊË]"
ce qui donnerait pour evenement:
"[eeéèêëÈÉÊË]v[eeéèêëÈÉÊË]n[eeéèêëÈÉÊË]m[eeéèêëÈÉÊË]nt" . Mais ça
marche pas le code n'est pat compris pour la requête
j'ai ensuite fait de même mais à la place de remplacer tous les e par
"[eeéèêëÈÉÊË]" je les ai remplacer par "_". Ce qui donnait _v_n_m_nt et
à l'exécution ca m'affichait tous les resultats des chaines de
caractères avec la présence des lettres "v" "n", "m" et "nt" .
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 31 août 2005 à 21:12
lool
je ne vais pas t'aider bcp non plus en te disant qu'il y a tt le temps
des gens qui posent la même question que toi, donc forcément la réponse
doit être qq part mdr
plus sérieusement j'ai déjà vu des fonctions php qui résolvait ça mais
je n'ai pas gardé les liens, tape "accents base de données" dans google
et tu devrais retrouver.
chocholman
Messages postés21Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention 1 septembre 2005 31 août 2005 à 21:53
Bah merci les gars
Mais ça fait 2 jours que je cherche sur le net et toujours rien... J'ai
cherché pour avoir des codes sql (le pourait se résoudre par le sql)
mais rien non plus. Et comme je ne trouve pas de site enumérant les
fonction sql pour oracle7, j'ai du mal. Je suis sûr qu'il y a une
solution, du coté de WHERE mais je coince vraiment.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 1 sept. 2005 à 09:48
Hello,
je connais mal plsql, mais il doit y avoir la gestion des expressions régulières. Cela pourrait t'aider.
Sinon je ne vois que la solution très lourde de sortir toutes les
possibilités pour ton mot, et de faire ton where like avec des or sur
chaque version de ce mot.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_sjon
Messages postés861Date d'inscriptionmardi 26 mars 2002StatutMembreDernière intervention29 novembre 20061 1 sept. 2005 à 11:40
Sael og blesud
De mémoire il y a une option dans le conf d'oracle qui permet de gérer
cela; dans la section charset; maintenant je me souviens de cela dans
la version 8 et non pas la 7 ... ;-) Je vais voir si je retrouve mais
il me faut réinstaller oracle ... ;-) ... Mais vous pouvez regarder par
là ...
Bon courage ...
NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...
chocholman
Messages postés21Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention 1 septembre 2005 1 sept. 2005 à 11:47
Merci pour aide Sjon mais en fait je ne peux pas modifier quoique se
soit sur la base. Je peux juste la consulter donc à partir de là je
dois retrouver une fonction sql ou un code php qui ne mettrait à mettre
trop de temps pour chercher les bons mots (ma base contient 54000
enregistrements et les mots sont recherché dans un commentaire qui peut
comprendre jusqu'à 2000 lettres)