2011-01-20 12 views
0

私は親アイテムの配列を作成するmysqlクエリを実行しようとしています。それらの子アイテムは下にあります。しかし、私は100%確実ではない。ここで私がこれまで行っているものです:カテゴリFROMmysqlクエリのヘルプが必要 - 親のグループ

SELECT *を親、名前ASC

によるRF ORDERとしてそしてここで(配列)に出力されているものです。

Array 
(
    [0] => stdClass Object 
     (
      [id] => 7 
      [name] => Safety Clothing 
      [parent] => 0 
     ) 

    [1] => stdClass Object 
     (
      [id] => 8 
      [name] => Safety Footwear 
      [parent] => 0 
     ) 

    [2] => stdClass Object 
     (
      [id] => 9 
      [name] => Workwear 
      [parent] => 0 
     ) 

    [3] => stdClass Object 
     (
      [id] => 4 
      [name] => Polos 
      [parent] => 7 
     ) 

    [4] => stdClass Object 
     (
      [id] => 3 
      [name] => Shirts 
      [parent] => 7 
     ) 

    [5] => stdClass Object 
     (
      [id] => 6 
      [name] => Jackets 
      [parent] => 9 
     ) 

    [6] => stdClass Object 
     (
      [id] => 1 
      [name] => Pants 
      [parent] => 9 
     ) 

    [7] => stdClass Object 
     (
      [id] => 2 
      [name] => Shirts 
      [parent] => 9 
     ) 

    [8] => stdClass Object 
     (
      [id] => 5 
      [name] => Shorts 
      [parent] => 9 
     ) 

) 

あなたが見ることができるように子項目は、(親が0に設定されている)親アイテムのIDを持っていますが、私はこのような配列何かを一緒にすべてをマージするかどうかはわかりません。

-

子 - 子

- 子

- 子

- 子供

任意の助けが理解されるであろう:)

答えて

1

アレイからのデータを使用して、ネストされたアレイを構築することが可能である場合: 各オブジェクトには、配列変数を有するであろう。その後、最初の配列が構築された後、最初の配列を解析することによって親を手動で移動させます。

解析するメソッドは再帰的であり、初期配列と現在構築中の子配列をとります。 1 BY Rf基としてカテゴリ名など

2

また

SELECT親、GROUP_CONCAT(名);

最初の列に親IDがあり、2番目の列にカンマで区切られた子の名前を持つすべての親に対して1行が表示されます。