Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по деревьям

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Panoptik
Отправлено: 26 Октября, 2012 - 17:44:06
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




приветствую

вобщем в кратце
сперва был такой вариант древообразной структуры
id parentId name (не хочу обзывать неправильно ибо не помню как правильно пишется)

сейчас есть поддержка вложенных множеств

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


теперь вопрос: можно ли на nested set достать такой вид на лету так как посортировать можно по left-key , а показать данный вид я пока не придумал как?

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

(Отредактировано автором: 26 Октября, 2012 - 17:45:51)



-----
Just do it
 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Октября, 2012 - 17:47:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




У вас же там есть level, в чем проблема то?
 
 Top
Panoptik
Отправлено: 26 Октября, 2012 - 17:48:24
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




есть, но как я по нему погу выстроить порядок?


-----
Just do it
 
 Top
caballero
Отправлено: 26 Октября, 2012 - 17:50:28
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
остался в закрамах еще не исследованный метод матералных путей.
может в данном случае использовать как раз и нужно его использовать?

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

(Отредактировано автором: 26 Октября, 2012 - 17:50:45)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Panoptik
Отправлено: 26 Октября, 2012 - 17:53:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




caballero можна нормальный линк по теме или просто, какой тип данных нужно выбирать для хранения этого пути в MySql?


-----
Just do it
 
 Top
EuGen Администратор
Отправлено: 26 Октября, 2012 - 17:54:39
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Panoptik
Отправлено: 26 Октября, 2012 - 18:09:37
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




EuGen не совсем то. насколько я понял. там идет речь о выборе из связной таблицы, тут же выбор идет из одной таблицы, но помимо этого должно строиться визуальное представление о принадлежности каждой ноды к родителям

очевидно caballero прав. берем тему на изучение


-----
Just do it
 
 Top
EuGen Администратор
Отправлено: 26 Октября, 2012 - 18:16:24
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Выбрать путь
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT node.name,
  2.     GROUP_CONCAT(parent.name ORDER BY parent.lft SEPARATOR '.') AS full_path,
  3.     (COUNT(parent.name) - 1) AS level
  4. FROM nested_category AS node, nested_category AS parent
  5. WHERE node.lft BETWEEN parent.lft AND parent.rgt
  6. GROUP BY node.name
  7. ORDER BY node.lft;

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
caballero
Отправлено: 26 Октября, 2012 - 18:33:14
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Panoptik
я храню в строке цепочку id вверх до родительскрго элемента
чтобы отсекать уровни выделяю на каждый id 8 символов

картинка в атаче
Прикреплено изображение (Нажмите для увеличения)
screen.png


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Panoptik
Отправлено: 26 Октября, 2012 - 19:58:06
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




caballero, EuGen спасибы

Евгений, сделал ваш запрос, извините сразу не понял о чем речь
осталось подумать как его интегрировать в framework и active record, но получилось просто шикарно заодно буду разбираться с новыми sql конструкциями GROUP_CONCAT...


-----
Just do it
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB