JeuWeb - Crée ton jeu par navigateur
[MySQL] Ordre de lignes - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [MySQL] Ordre de lignes (/showthread.php?tid=5981)



[MySQL] Ordre de lignes - Wells - 17-02-2012

Petite question qui m'a traversé l'esprit/

j'ai une table simple avec 5 ligne dedant. Un champ LIG_Ordre qui determine l'ordre d'affichage.

Ca donne:

LIG_Id LIg_Ordre
17 0
25 1
89 2
90 3
91 4


Ca c'est le cas ou tout va bien. Mais imaginons que qq chose cloche et qu'on obtienne un décalage:

LIG_Id LIg_Ordre
17 0
25 1
89 5
90 8
91 10

Voyez vous le moyen par une simple requête SQL UPDATE (sans boucle) de remettre l'ordre correctement?


RE: [MySQL] Ordre de lignes - php_addict - 17-02-2012

tiens, c'est marrant pourquoi avoir une colonne "ordre" ? les ORDER BY sont fait pour ca non ?

perso je n'utilise une colonne "ordre" que pour des cas très spéciaux, tel que pour l'affichage personnalisé/personalisable de certains éléments, mais pas pour trier des données...

sinon:

http://www.jeuweb.org/showthread.php?tid=8218&pid=105001#pid105001

pour éviter les boucles : http://dev.mysql.com/doc/refman/5.1/en/load-data.html


RE: [MySQL] Ordre de lignes - Myrina - 17-02-2012

Il suffit d'utilisation une variable incrémentée à chaque ligne:

set @cpt=-1;
update test set `LIg_Ordre`= (select @cpt:=@cpt+1) order by LIG_Id;



RE: [MySQL] Ordre de lignes - Holy - 17-02-2012

(17-02-2012, 11:44 AM)php_addict a écrit : tiens, c'est marrant pourquoi avoir une colonne "ordre" ? les ORDER BY sont fait pour ca non ?

perso je n'utilise une colonne "ordre" que pour des cas très spéciaux, tel que pour l'affichage personnalisé/personalisable de certains éléments, mais pas pour trier des données...
A mon avis, c'est pour pouvoir utiliser "between" et économiser des ressources avec un système de pagination.

C'est un système relativement classique sur les forums, les classements et autres.


RE: [MySQL] Ordre de lignes - niahoo - 17-02-2012

Oui ou quand simplement tu veux un ordre arbitraire qui ne soit pas basé sur l'ordre alphabetique, une date ou autre …