Hello!

Pour les besoins d'un site, j'ai créé un menu dynamique. Il est composé d'éléments que l'on peut modifier et ordrer (monter/descendre). Je gère l'ordre de ces éléments par position: 1, 2, 3, 4, 5, etc. Si je descend l'élément avec la position 3, il prendra la position 4 et inversément pour l'élément de la position 4. Jusque-là pas de problème, jusqu'à ce que j'en arrive à la suppression!

Si je supprime l'élément avec la position 3, il y aura un trou! Donc tout va foirer! J'ai alors pensé, lors de la suppression de cet élément, de prendre tous les enregistrements avec la position plus grande que l'élément supprimé et ainsi, plus de trou, car on enlève une unité à chaque enregistrement plus grand.

Théoriquement ca devrait fonctionner... mais! Voilà ma requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
UPDATE table SET ordre = valeur-1 WHERE ordre > ordre_enregistrement_supprimé;
Ma question est: y a-t-il un moyen de sélectionner "valeur" sur le tas sans devoir faire une requête SELECT auparavant (par une fonction MySQL ou autre) ?

Merci d'avance!