cs_jobern
Messages postés5Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention 5 juin 2007
-
4 juin 2007 à 13:33
cs_jobern
Messages postés5Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention 5 juin 2007
-
5 juin 2007 à 09:52
Bonjour,
Si le thème choisi n'est pas correct, je vous présente par avance toutes mes excuses, mais je ne vois pas très bien où caser cette question.
Je doit faire un tri par ordre alphabétique de listes de noms .... ce qui me complique la vie, c'est que mes données (saisies dans une base de données en unicode) contiennent vraiment des caractères unicode (dont le code point est parfois assez haut).
Exemple :
Bopp, Franz
Bréal, Michel
Brøndal, Rasmus
Brosses, Karl,
Hervás y Panduro, Lorenzo ou autres joyeusetés comme : kurilovi ???
Kuri l ovicz
ou autres joyeusetés comme : ? ? ? etc...
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 5 juin 2007 à 09:31
Salut,
Ok, je comprends mieux quel est ton problème... : tu veux faire le tri coté client en javascript ! (j'ai bien compris?)
Honêtement, je pense que c'est une [très] mauvaise idée... Il faut placer les fonctionnalité au bon endroit.
Le tri est vraiment qquel chose qui doit être traité par la base de données,
car elle a été codée pour faire ce genre d'opération sur un très grand nombre d'éléments
Tu peux, si tu veux, toutefois concerver ton réordonnement coté client :
[CODE MYSQL]
set @pos = 1;
select name, @pos := @pos+1 as order, ..., from authors order by name asc;
[Fin code]
Avec ça, ta base s'occupe de trier selon les noms (avec ça connaissance du langage humain (é,ê,è,ë,e, Ê, Ë, ... ont le même ordre)
Et javascript réordonne selon la position déterminée par la base...
cs_jobern
Messages postés5Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention 5 juin 2007 4 juin 2007 à 16:14
Merci d'intervenir,
J'ai toutes les peines du monde à trouver ou cliquez pour continuer la discussion.
En tout cas, j'essaie encore une fois.
Je crois que mes données respecte bien une chaine unicode (encodée utf8).
En fait, je travaille avec PostgreSql, et j'ai déjà un premier tri avec les affichages correspondants qui tourne.
Pour le voir http://atlas.ens-lsh.fr/accueil.php (attention, le site est en test...)
Le problème c'est que je travaille à coup de preg-replace, alors je me retrouve à entrer des trucs du style RE["a"] = new RegExp("á|à|â|ã|ä|å|æ|ā|ă|ą|ǝ|ǟ|ǡ|ǻ|ǽ|ȁ|ȃ|ẚ|ạ|ả|ấ|ầ|ẩ|ậ|ắ|ằ|ẳ|ẵ|ặ|ɑ|ɒ|ɐ","gi");
probablement illisibles puisqu'il n'y a pas d'arial unicode ici.
Bonjour l'exhaustivité ....
Et je cherchais une meilleure solution.
Voilà, A+
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 4 juin 2007 à 16:57
Oula, je ne comprends pas ce que tu fais... ?
Premièrement, tu peux utiliser les fonctions utf8_decode et utf8_encode...
Mais surtout, pourquoi utiliser des preg_match dans un tri ?
Ta base SLQ devrait faire le tri, pas php.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_jobern
Messages postés5Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention 5 juin 2007 4 juin 2007 à 17:10
Elle fait un tri, mais bizarre .
Quand je recode j'ai bien (premier passage, par auteurs, sorti du PHP) :
Bopp, Bréal, Brøndal, Brosses, Brugman, Bühler ...
Sans ça, par exemple clic en local sur titre colonne (c'est du javascript brut)
Brosses,Brugman, Bréal, Brøndal, Bühler
dans l'ordre de tri classique le ø, ou le é vient après le r.
Si je n'avais que des minuscules accentuées françaises, je pourrai m'en sortir.
Malheureusement j'ai plein d'autres caractères.
cs_jobern
Messages postés5Date d'inscriptiondimanche 22 avril 2007StatutMembreDernière intervention 5 juin 2007 4 juin 2007 à 17:28
En complément :
Je suis aller voir pour ajouter soit à PHP soit à Postgres les ICU (
International Components for Unicode)
mais comme je rajoute des tris côté client et que javascript ne connait les "sort sequences" de ICU,
il faut que je trouve une autre solution (pas trop lente!).
Mais bon, laisse tomber : je crois qu'il me faut encore pas mal piocher