Упорядочивание данных в таблице

tim-ua

Новичок
Упорядочивание данных в таблице

Подскажите как правильно организовать упорядочивание:
Есть таблица: id-int, name-varchar, order-int

1. Как правильно сделать добавление новых элементов?
2. Нужно вывести таблицу со всеми значениями, на каждой строке нужно вывести стрелки вниз и вверх при нажатии на которые в таблице будут соостветствующие изменение в полях order для поднятия или опускание строки вверхи или вниз. Как примерно должен выглядеть сам запрос?

п.с. Сори если криво изложил, надеюсь суть ясна... в той же йомле есть такая штука...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
йомла? оО

tim-ua
как пробовал делать сию задачу?
 

tim-ua

Новичок
Joomla
Да в том то и дело что никак... понятия не имею как...
 

dimagolov

Новичок
ну хоть на словах изложи как ты себе представляешь этот процесс.
 

tim-ua

Новичок
Ну что-то вроде увеличить ордер у строки на один а у ордера который сверху соответственно уменьшить... но надеюсь можно как-то покрасивее сделать... Просто интересно как это емле и других ЦМС сделано...
 

dimagolov

Новичок
Ну что-то вроде увеличить ордер у строки на один а у ордера который сверху соответственно уменьшить... но надеюсь можно как-то покрасивее сделать...
а как иначе ты это сделаешь? два update в одной транзациии, это если нет уникального ключа по order-у.
Просто интересно как это емле и других ЦМС сделано...
если интересно, то открываешь исходники и смотришь.
 

tim-ua

Новичок
Да нет, мне готовый не надо... просто как это правильно реализовать и все
 

dimagolov

Новичок
tim-ua, я тебе уже сказал. два udate в транзакции. при добавлении вполне можно использовать auto_increment по полю `order` и не париться

п.с. называть поле order не есть хорошо, так как совпадает с конструкцией ORDER SQL-я.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
tim-ua
1. у тебя есть id раздела который ты хочешь сдвинуть, например вниз
1.1 выбрать данные sortorder для этого id
2. тебе нужно выяснить какой раздел стоит по иерархии ниже на 1 ступеньку, выбрать ее данные сортировки
3. Сделать 2 апдейта, поменяв местами порядки сортировки для этих двух разделов.


dimagolov
имхо про транзакции тут говорить рано)
 
Сверху