Изменение самого заказа потребует от вас сохранения какого-то порядка вместе с каждой страницей в базе данных. Просто текущее самое высокое / самое низкое значение +/- 1, вероятно, будет хорошей отправной точкой. После того, как у вас есть этот порядок, переупорядочение становится случаем замены двух значений или изменения значения для одной страницы, чтобы быть между двумя другими (я думаю, вы могли бы использовать числа с плавающей запятой, но вам может потребоваться перенумеровать, если вы разделите его слишком много раз).
В любом случае, как только вы это получите, вам нужен пользовательский интерфейс. Я видел очень простой подход «поменяйте местами с помощью выше / ниже», который может быть простой веб-ссылкой или вызовом AJAX. Вы также можете представить все значения страницы пользователю и попросить их изменить нумерацию по своему усмотрению. Если вы хотите стать модным, JavaScript перетаскивание может быть хорошим подходом. Я использовал ExtJS и Mootools в качестве фреймворков в такой области. Если вам не нужны все виджеты Extjs, я бы сказал об этом в будущем и посмотрю что-то вроде демонстрации Mootools Dynamic Sortables .