|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2007 Messages : 18 ![]() |
Bien le bonjour, voila mon problème, j'ai un formulaire e recherche avec des contrainte de ouf dans tout les sens.
Voila ma config obligatoire car pc bridé à mort : phpmyadmin v3.3.9; PHP v5.3.5 Apache v2.2.17; Jeu de caractères pour MySQL: UTF-8 Unicode (utf8); Interclassement pour la connexion MySQL : utf8_general_ci; Table en utf8_general_ci; Format d'enregistrement du fichier en utf8 sans BOMsous notepad++; header html : "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> "; j'ai une table groupe avec comme champ groupe_id et groupe_nom. et comme enregistrement j'ai : 1 Etudiants 2 Entreprises 4 étuDianTs je quand je fait une recherche sur le terme 'étu' ou 'etu' j'aimerai avoir les enregistrement 1 et 4. hors pour le moment se n'ai pas le cas... ma requête sql : Code php :
$reqsearch="SELECT * FROM `".$prefix."groupe` WHERE CONVERT(LOWER(`groupe_id`) USING utf8) LIKE CONVERT('%".search_format($searchall)."%' USING utf8) OR CONVERT(LOWER(`groupe_nom`) USING utf8) LIKE CONVERT('%".search_format($searchall)."%' USING utf8) COLLATE utf8_general_ci; "; avec comme fonction php : Code php :
Pour l'heure, quand je recherche 'etu' je n’obtient que l'enregistrement 1 et quand je tape 'étu' je n'ai que l'enregistrement 4. Please help me !!! Voila 10 heure que je passe sur cette bête idée que c'est possible (bien évidement je ne peu pas quitté ce cher UTF8 car contrainte client),j'ai essayé à peu près 100 écriture différente que l'on peu trouvé sur le sujet sur le net avec 80% de solution renvoyant de jolie erreur. donc là sois je trouve le code, sois je trouve la fenêtre du 5ème. Merci d'avance à tous. |
||
|
|
00
|
|
|
#2 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2007 Messages : 18 ![]() |
Après de nombreux test j'ai un peu affiné la chose.
ma requête passe maintenant par du UPPER : Code php :
$reqsearch="SELECT * FROM `".$prefix."groupe` WHERE CONVERT(UPPER(`groupe_id`) USING utf8) LIKE CONVERT(UPPER('%".search_format($searchall)."%') USING utf8) OR CONVERT(UPPER(`groupe_nom`) USING utf8) LIKE CONVERT(UPPER('%".search_format($searchall)."%') USING utf8) COLLATE utf8_general_ci; "; Code php :
Maintenant, quand je recherche 'etu' je n’obtient toujours que l'enregistrement 1 mais quand je tape 'étu' j'ai l'enregistrement 1 et 4. Alors il ne me suffit d'affiner encore une fois, mais comment ? |
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 843 ![]() |
salut, tu peux préciser quel type de test pour les fonctions sur les chaines tout dépend de la collation de base ou forcée avec using...
en utf8, la comparaison binaire différencie un e d'un é, la version "general" non ensuite "_ci" est insensible à la casse (majuscule/minuscule) alors que "_cs" y est sensible... Lire la doc sur les collations et jeu de caractères de mysql
|
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2007 Messages : 18 ![]() |
Justement j'ai bien besoin de l’insensible à la casse,mais les upper ou lower était surtout en espèrent que les accents disparaissent.
Alors voila, par exemple, je rajoute en plus "_ai" (pour ne pas être sensible au accent, et là c'est le drame). je crois que dans les config de mon .ini (que je ne peu changé par contrainte) je ne sois pas autorisé à utilisé tout ça. |
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
MySQL est très limité dans beaucoup de chose... Notamment dans les collations et ne sais pas gérer correctement les collations insensible aux caractères diacritiques (accents, cédille, ligature....) correctement.
A lire sur MySQL : http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
Copyright © 2000-2012 - www.developpez.com