как обычно реализовывается "поднять наверх"

Духовность™

Продвинутый новичок
как обычно реализовывается "поднять наверх"

Привет.

Допустим, есть дерево или список.
Код:
element 1        + -
element 1.1      + -
element 1.1.1    + -
element 1.1.2    + -
element 1.2      + -
как реализовать механизм "поднять выше или ниже", т.е. что бы при клике на кнопочку, которая расположена напротив каждого элемента, этот элемент списка поднимался или опускался на одну позицию?

Как это лучше сделать? Я ничего, кроме как операций с временной меткой не придумал. У кого может есть какие-нибудь успешно реализованные идеи?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Гугл сломался?
Дерево какое?
Ты бы структуру таблицы хотя-бы показал.
NS?
- есть куча примеров.
 

kruglov

Новичок
Особенно приятно переносить какой-нить пункт на 50 позиций вверх из конца списка в начало.
 

Духовность™

Продвинутый новичок
...

-~{}~ 10.06.08 23:21:

млять!! ... я же это реализовал давно!!

всё!! вопрос снят! я знаю как это сделать!!
 

kruglov

Новичок
Лично у меня есть кнопка начать "перенос" и кнопка "кинуть в это место". Думал драг-дропом сделать, но передумал, человеку свойственно где-нить не там мышку отпускать. Соответственно, реализовал 2 функции - вывязать элемент из списка и ввязать его в список после данного (или 0 - если в начало). Проблем в алгоритмизации совершенно никаких не вижу.

-~{}~ 10.06.08 23:22:

Ого... Надо, батенька, высыпаться...
 

Духовность™

Продвинутый новичок
kruglov
это Вы в своей системе сделали? там же вроде все драг-дропом реализовано вроде..?
 

Духовность™

Продвинутый новичок
Слушайте, я не правильно вопрос задал наверно. Деревья тут не при чем.

Пусть есть просто некое количество записей в базе:

ааааааа
ббббббб
ссссссссс

так вот, надо на место ббббббб поставить ссссссссс. как это реализовать? Тут исключительно вопрос сортировки, по какому критерию отсортировывать. ID менять нельзя.
 

Духовность™

Продвинутый новичок
Определился. Если можно, уберите треп выше.

Скажем, мы имеем ленту новостей. У нас нет древовидной структуры, каждая отдельная запись ничего не знает о других.

Необходимо РЕШЕНИЕ, которое позволит менять местами эти записи в потоке вывода - поднимать или опускать их до каких-то определенных величин.

Было:

- новость 1
- новость 2
- новость 3

стало

- новость 1
- новость 3
- новость 2


Я видел, как подобное реализовывается - через datetime или unix timestamp и сортировка идет по этим полям, в том числе.

Но на данный момент я не вижу в этом гибкости.
 

HraKK

Мудак
Команда форума
Только у меня складывается мнение что triumvirat
влом читать азы в гугле и он в день по 5 топиков создает? Может и мне на каждую проблему создавать тут пост?

triumvirat
Давай ка ты умеришь пыл и будешь больше мозгами думать? Могу даже помочь в readonly поставить чтоб небыло соблазна создать топик?
2 All
Прошу, для пользы ТС не отвечать ему.
 

Духовность™

Продвинутый новичок
HraKK
не надо меня в ридонли, я больше не буду. я просто не знаю в какую строну копать.
 

HraKK

Мудак
Команда форума
Думай. На то ты и программист. А если самому не упражнятся в такой элементарщине - прямой путь тебе в monkey code
 

asterisk

Новичок
дополнительный филд int Priority
напротив каждой "новости" текстовый инпут с указанным порядковым номером.
при выборке сортируем по филду Priority

-~{}~ 11.06.08 10:45:

но triumvirat явно не выспался :)
ибо подобные вопросы от него выглядят дикостью.
 

Духовность™

Продвинутый новичок
подобные вопросы от него выглядят дикостью.
вот все умные стали, да?...


напротив каждой "новости" текстовый инпут с указанным порядковым номером.
при выборке сортируем по филду Priority
и что получится, когда у нас будет хотя бы 50 записей на странице? Кто-то будет все эти циферки вручную перебивать?
 

whirlwind

TDD infected, paranoid
triumvirat покопайсо в разделе мускуля. Кажись я там видел какие-то варианты с float-ом.
 

WP

^_^
whirlwind
Бугога. Выпей йаду.

triumvirat
Бугога №2. Поднять или опустить - обменять два значения поля pos местами. И надо еще сделать кнопку которая позволяет в любое место вставлять.
 

asterisk

Новичок
Бугога №2. Поднять или опустить - обменять два значения поля pos местами
только если элементы соседи

а с учетом
Особенно приятно переносить какой-нить пункт на 50 позиций вверх из конца списка в начало.
как минимум нужно проапдейтить еще и записи следующие в порядке сортировки дабы не появлялись элементы с одним порядковым номером.

WP
whirlwind
Бугога. Выпей йаду.
про float идея не нова и имеет право на жизнь
мне кажется йаду лучше будет выпить тебе ;-)
 
Сверху