PHP と MySQL を使用します。
id、name、parentの 3 つのフィールドのみを持つテーブル (カテゴリ) があります。
親はルート カテゴリでは 0 であり、別のカテゴリから派生した場合は整数です。
ただし、これにはいくつかのレベルを含めることができます。たとえば、次のようになります。
id, name, parent
01, Name 01, 00
02, Name 02, 00
03, Name 03, 00
04, Name 04, 02
05, Name 05, 01
06, Name 06, 01
07, Name 07, 05
08, Name 07, 05
09, Name 09, 04
10, Name 10, 07
11, Name 11, 10
ルートとそのすべてのサブノードを含む配列を返すにはどうすればよいでしょうか? たとえば、id=1 の場合、配列は次のようになります。
array (
1 => array(
id => 1,
name => 'Name 1'
),
5 => array(
id => 5,
name => 'Name 5'
),
6 => array(
id => 6,
name => 'Name 6'
),
7 => array(
id => 7,
name => 'Name 7'
),
8 => array(
id => 8,
name => 'Name 8'
),
10 => array(
id => 10,
name => 'Name 10'
),
11 => array(
id => 11,
name => 'Name 11'
)
);
このリンクを見て、いくつかのバリエーションを試しましたが、まだ成功していませんでした。