Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 03.11.2011 10:29 / 03.11.2011 10:51
... есть только один вариант: вытащить всю таблицу и пройти по par_id.$tree[^hash::sql{select id, par_id, name from cg_adr}] $path[^hash::create[]] $cur_id[4] ^while(^tree.contains[$cur_id]){ $path.[^path._count[]][$cur_id] $cur_id[$tree.[$cur_id].par_id] } ^for[i](1;$path){$tree.[^eval($path - $i)].name}[ / ]Но если добавить дополнительное поле с thread_id, как в примере, то код сильно упростится — можно будет пройти прямо от корня без всяких глупостей, а при большой дереве мы сможем еще и вытащить его кусок одним запросом.