Неограниченная вложенность

zaartix

Новичок
Неограниченная вложенность

Уверен, что это уже обсуждалось, но не смог найти ничего ...
Помогите решить такую задачку:
Есть сайт, который имеет кучу разделов, подразделов, под-подразделов и т.д. Т.е. неограниченная вложенность подразделов.
Как организовать такую структуру, таким образом, чтобы можно было посредством одного запроса забрать все предыдущие разделы, т.е. выстроить дерево, относительно самого первого раздела.
Все разделы, подразделы лежат в базе.
 

2People

Guest
Впринципе можно, но это неправильно, как и сама идея сделать такое одним запросом.
Вот имя странички:
home||razdel1||page1||podpage2||pod_podpage156
(извращение)
Достать из базы и распарсить.
 

NEK

Guest
Автор оригинала: bettrrr
имя странички:
home||razdel1||page1||podpage2||pod_podpage156
А так не нравится
PHP:
$x='/fgfg/fgh/df/zlo.html';//or $x='/fgfg/fgh/df/';
$x_list=explode('/',$x);
$a=array_pop($x_list);
print_r($x);
 

zaartix

Новичок
Народ, dbtree рулит, все просто и удобно.
Но, у меня возникла проблема, функция moveAll выдает sql ошибку, что поле leveld ненайдено.
Вот этот кусок, что вызывает ошибку:
PHP:
$this->sql = 'UPDATE '.$this->table.' SET '
                . $this->level.'=IF('.$this->left.' BETWEEN '.$leftId.' AND '.$rightId.', '.$this->level.sprintf('%+d', -($level-1)+$levelP).', '.$this->level.'), '
sprintf('%+d' - зачем-то добавляет букву d к переменной $this-level, сколько не пыхтел, так и не понял нафига. Когда убрал "%+d" все стало нормально (правильно переносится). Но вопрос остался открытым...
 

zaartix

Новичок
что, никто не знает в чем ошибка? может в моих кривых руках?
 

Макс

Старожил PHPClub
поищи по форуму. Кто-то здесь приводил патч для похожей ошибки.
 

zaartix

Новичок
а я просто убрал из sprintf %+d и все стало ок, только вот появилась неуверенность в правильности работы скрипта, хотя ошибок замечено небыло
 
Сверху