Zaszła potrzeba utworzenia tablicy drzewa wielopoziomowego za pomocą jak najmniejszej liczby zapytań. Przykładowa tabela:
Kod
id parent_id title
1 0 Artykuły
2 1 Na temat 1
3 1 Na temat 2
4 2 Na podtemat 1
5 2 Na podtemat 2
1 0 Artykuły
2 1 Na temat 1
3 1 Na temat 2
4 2 Na podtemat 1
5 2 Na podtemat 2
Celem jest utworzenie tablicy o strukturze:
Kod
Array
(
[0] => Array
(
["name"] => "Artykuły"
["items"] => Array
(
[0] => Array
(
["name"] => "Na temat 1"
["items"] => Array
(
[0] => Array
(
["name"] => "Na podtemat 1"
)
[1] => Array
(
["name"] => "Na podtemat 2"
)
)
)
[1] => Array
(
["name"] => "Na temat 2"
)
)
)
)
(
[0] => Array
(
["name"] => "Artykuły"
["items"] => Array
(
[0] => Array
(
["name"] => "Na temat 1"
["items"] => Array
(
[0] => Array
(
["name"] => "Na podtemat 1"
)
[1] => Array
(
["name"] => "Na podtemat 2"
)
)
)
[1] => Array
(
["name"] => "Na temat 2"
)
)
)
)
Google podaje mi tylko jakieś wielkie klasy, które operują tylko na memberach obiektu, ew. poprzez rekurencję wykonują więcej zapytań SQL.
Pytanie:
Czy ktoś ma pomysł, jak zbudować takie drzewo z pomocą jednego tylko zapytania, tzn SELECT * FROM categories?