Mumm problème d'order by

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

29 juin 2005, 09:47

Sur mon site perso http://www.olecorre.com si vous afficher une lsite de mot vous constaterez que l'ordre est pas bon pourtant y a un order by, le problème vient que pour les accents ils sont mis en codes html ce qui fausse l'ordre les mot avec accent passe avant exemple flagrant sur la lettre R.

Quelqu'un aurai une idée pour avori un bon ordre ? le tout en sql
Moi à part faire un champ qui comprend les mots avec accents et non le code html je vois pas, mais ca alourdirai la base.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 juin 2005, 09:53

Je verrais bien un autre truc, mais ca surcharge ta base aussi, c'est quand tu enregistre un mot, tu as le champ "libellle" qui contient le mot avec accent et un champ "texte" qui contient le mot sans accent et ensuite tu trie sur le champ "texte" et tu devrais tout avoir dans l'ordre

Pas très optimisé mais je vois rien d'autre pour le moment :oops:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

29 juin 2005, 09:56

c'est tout a fait ce que je pensais faire mais je voulais voir si quelqu'un avait une autre idée ! En plus les 7000 mots sotn en code html vaut que j'implemente le nouveau champ sans le ode html donc faire l'opération inverse du htmlentities !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 juin 2005, 09:58

Il y aurait aussi la solution de rajouter un champ "ordre" numérique dans la bdd et, à chaque fois que tu rajoute un mot dans la bdd, tu trouve son numero d'ordre et tu incrémente tout les suivants, mais :
- lourd à gérer
- même problème pour le tri
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

29 juin 2005, 09:59

Pourquoi ne pas stocker dans la base avec les accents (ça ne gêne pas SQL, il me semble...) et en sortant les mots remplacer par les entités HTML correspondantes ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

29 juin 2005, 10:03

en fait si j'ai mis les accents en html c'est que quand je bosse sur la base ne local chez moi sous windows, j'ai aucun soucis mais des que je met à jour la base sur mon hébergement en linux, j'ai toujours des ? à la place des accents, j'ai pas trouver de parade ! sit je donne dans la requete insert le mot ou le defénition avec des accents, j'ai systématiquement des ? sur le site.
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

29 juin 2005, 10:08

As tu vérifié le charset de ta base ?
http://www.nexen.net/docs/mysql/annotee ... arsets.php
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

29 juin 2005, 10:10

suis en latin1_swedish_ci sur mon poste et sur l'hébergement
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

29 juin 2005, 10:13

bon resolu, j'ai mise à jour le chmpa mot en enlevant le code html et en remettant les accents
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

29 juin 2005, 10:19

moi je vote pour la sol de Mere-T
Et vive l'UTF-8

Bon, plus sérieusement, ton prob m'a l'air très intéressant : j'y avais jamais pensé, mais c vrai que ca doit arriver très souvent, car il est moins lourd de stocker du html dans la BDD que de faire des htmlentities a chaque fois (quoi que ce serait la solution de facilité dans notre cas)

pour regler ce délicat probleme il faudrai modifier la fonction de comparaison pour qu'elle accepte une option *HTMLENTITIES* et que, dans ce cas elle convertisse les entitiées html en leur équivalent mais ca sous entend de faire un patch pour mysql ... en fait, je crois que je suis bon pour l'azile, non, la meilleur solution reste l'UTF-8 (même si g jamais compris comment le faire marcher