親のすべての子を取得するためのクエリ (+php) がありますが、それをひっくり返して、要素のすべての親を取得する方が便利です。
テーブル:
ID parentID showOrder
===============================
1 0 0
2 1 0
3 2 0
4 3 1
5 3 2
6 3 3
コード:
<?php
$structure = array();
$sql = "SELECT ID, parentID FROM table ORDER BY parentID ASC, showOrder ASC";
while ($row = fetch_row()) {
$structure[$row['parentID']][] = $row['ID'];
}
出力:
0: [1], 1: [2], 2: [3], 3: [5,4,6]
望ましい結果:
0: [], 1: [0], 2: [1, 0], 3: [2, 1, 0],
4: [3, 2, 1, 0], 5: [3, 2, 1, 0], 6: [3, 2, 1, 0]
これどうやってするの?