Приведу небольшой примерчик как одним запросом и одним циклом получить иерархию разделов в виде:
Array
(
[ROOT] => Array
(
[CHILD] => Array
(
[12] => Array
(
[ID] => 12
[~ID] => 12
[NAME] => Раздел с ид 12
[~NAME] => Раздел с ид 12
[DEPTH_LEVEL] => 1
[~DEPTH_LEVEL] => 1
[CHILD] => Array
(
[63] => Array
(
[ID] => 63
[~ID] => 63
.............
[CHILD] => Array
(
........
)
)
.......
[63] => Array
(
[ID] => 63
[~ID] => 63
.............
)
.......
)
)
..............
)
)
)
На мой взгляд, с такой структурой работать в большинстве случаев удобнее, чем со списком, отсортированном по LEFT_MARGIN
Итак код:
Читать далее