моя древовидная структура

Safary

Новичок
моя древовидная структура

Вот часть таблицы моей древовидной структуры:

ID-----PID---SORT--------LEVEL-----LINK-----------------------------------SECTION------------NAME
67___0___001_________1____/lessons___________________lessons__________уроки
95___67__001001______2____/lessons/photoshop__________photoshop____photoshop
98___67__001002______2____/lessons/3dsmax____________3dsmax_______3d studio max
99___98__001002001___3____/lessons/3dsmax/animation____animation_____анимация
100__98__001002002___3____/lessons/3dsmax/modeling_____modeling_____моделинг
68___0___002_________1____/soft_______________________soft________софт

В общем сделал админку, всё через админку добавляется, все категории добавлены через админку. Вручную ничего в таблице не писалось/не изменялось. =)

Сделал удаление, добавление, изменение категорий! :)

Теперь делаю сортировку, небольшие проблемки начались.
По идее категория, которую я хочу поднять наверх, должна подниматься так:
PHP:
//находим всех детей категории через рекурсивную функцию
//меняем сорт в нужном месте категории и всех детей
//ОРДЕР ТЭЙБЛ БАЙ СОРТ
Всё правильно?

-~{}~ 30.03.09 01:29:

ну ответьте хоть че-нить

-~{}~ 30.03.09 01:31:

нормальная система сортировки? или лучше всётаки просто числа сделать - 1,2,3,4,5,6,7...
 

pilot911

Новичок
по идее SORT должно хранить лишь целые числа в порядке возрастания, например

1
2
3
4

если хочешь вставить новую страницу - делаешь SELECT MAX(sort) .... WHERE PID=67

- и добавляешь единицу к полученному MAX

есть другой вариант - когда у тебя запись должна быть вставлена перед другой или после другой

будут вопросы, как это сделать - пиши
 

dimagolov

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

Crys

Двинутый новичок
Не знаком с прелюдией данной темы.. Но ссылку про древисину знаю такую:

http://phpclub.ru/faq/Tree

:)
 

Safary

Новичок
dimagolov, а как сортировать при выборке?
Имхо, удобнее когда осортированное дерево в базе хранится, зачем сортировать и тратить системные ресурсы каждый раз когда кто-то на страницу заходит?
 

dimagolov

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

Safary

Новичок
я ссылки читаю, мож пропустил че?
просто такая система вроде интересна как у меня, она ж классная эта система, просто задачу решить с сортировкой и всё, больше проблем с такой системой нету =)
 
Сверху