2011-06-25 6 views
3

CMSは、現在取り組んでいる電子商取引ソリューションの一環として、製品カテゴリには無制限のサブカテゴリを持つオプションがあり、各サブカテゴリには無制限の数サブカテゴリの基本的に、製品カテゴリには無制限のネストレベルがあります。ベストプラクティスのためのものですので、私の質問は、PHPでブレッドクラムを出力するためのベストプラクティス

+-------------+-----------------+----------------+ 
| category_id |  name  | parent_id | 
+-------------+-----------------+----------------+ 
|  1  | Parent 1  |  null  | 
|  2  | Child of Parent |  1  | 
+-------------+-----------------+----------------+ 

我々は、カテゴリナビゲーションの各レベルのブレッドクラム・ナビゲーションに追加する:

カテゴリのデータベース・テーブル・スキーマは次のようになりますそれがトップレベルに達するまで、割り当てられた親がある間にカテゴリをループしますか?何parent_idを持っていない

もちろん、我々は一定のループでそれをコーディングすることができます(その他の例if($child->hasParent()) { echo '1'; if($child->children->hasParent() { } }ため

あなたはトップレベルのカテゴリに達するまでは、カテゴリの未知の数を反復処理するにはどうすればよい(すなわちカテゴリ割り当てられた?

答えて

2

はちょうどこのため、whileループを使用しています。

while($child->hasParent()) { 
    echo $child->name(); 
    $child = $child->Parent(); 
} 
0

をする場合(親クラス== null)の

その後、 子クラス== nullの

他 HASPARENTクラス(ヌル)== 0

繰り返し

+0

あなたは、いくつかの有益な答えを提案すべきです – NullPointer

関連する問題