Je suppose que le bouton comprend l'identifiant de l'entrée que vous souhaitez déplacer (button_id)
Pour déplacer une entrée dans l'ordre, d'abord passer l'entrée au-dessus de l'entrée actuelle par 1:
UPDATE foo
SET order = order-1
WHERE order = ((SELECT order FROM foo WHERE id = "button_id") + 1)
Ensuite, passez l'entrée en cours jusqu'à 1:
UPDATE foo
SET order = order+1
WHERE id = "button_id"
OU Pour déplacer une entrée dans ord er, premier quart de travail l'entrée sous l'entrée actuelle par 1:
UPDATE foo
SET order = order+1
WHERE order = ((SELECT order FROM foo WHERE id = "button_id") - 1)
ensuite déplacer l'entrée actuelle vers le bas 1:
UPDATE foo
SET order = order-1
WHERE id = "button_id"
Vous ne pouvez pas faire confiance à 'order', n'est-ce pas? – Franz
Si "order" est unique, pourquoi pas? (et pourquoi ne devrait-il pas être unique?) La concurrence serait un autre problème. (edit: mais j'avoue que je n'ai pas essayé/testé, il pourrait très bien y avoir une bien meilleure solution ;-)) – VolkerK