Salut à tous,
Alors voilà j’ai besoin de faire un ordonnancement de lignes assez particulier dans mysql, c’est à dire que je veux pouvoir faire remonter un article déjà passé dans la BDD sans pour autant avoir à le réinsérer.
Concrètement voici un exemple de BDD
MEDIA ([U]id[/U], date, comments, user, rang);
Et quelques insertions :
MEDIA (4,12/04/06,test4,piokaz,0);
MEDIA (3,29/03/06,test3,piokaz,0);
MEDIA (2,18/03/06,test2,piokaz,0);
MEDIA (1,12/03/06,test,piokaz,0);
Je suis parti pour idée d’ordonnancer d’abord par rang et ensuite par l’id (ORDER BY rang ASC, id DESC)
Ma requête d’affichage d’origine avant que je ne mette le champ ‘rang’ : SELECT * FROM MEDIA ORDER BY id DESC LIMIT ,15
Sachant que j’aimerais par exemple pouvoir faire remonter l’id numéro 2 en premier je vais devoir mettre son rang à 1, du coup nouvel ordre (ceux de gauche affichés en premier) : 2,4,3,1, et que si je rajoute une autre entrée que l’ordre ne change pas : 5,2,4,3,1.
On peut appeler ça, mettre en avant un média déjà passé par exemple, et que si par la suite on rajoute une autre entrée, qu’il garde son ordre et ne revienne pas à la fin.
Je n’arrive pas trop à m’y retrouver, comment je dois gérer le champ ‘rang’ pour que cela se passe comme je veux.
Voilà, voilà mon message est peut-être un peu compliqué à comprendre, mais j’ai fait comme je pouvais.
Si vous pouviez me mettre de quelconque façon sur la voie… ou plus ou moins me dire à peu prés comment procéder…
Merci d’avance ( j’en ai vraiment besoin )