• 締切済み

入れ子集合モデルのデータをリスト表示させたい

入れ子集合モデルでデータを取得しました。 それをリスト表示したいのですが、そのアルゴリズムがわかりません。 どのようにすればいいのでしょか? 再帰呼び出しをしたのですが、これ自体よくわかっていなくて、無限ループしてしまいました。(この部分は、あわててソースを変更したのでありません。) よろしくお願いします。 ---------------------------------------------- 【入れ子集合モデルを参考にしたページ】 http://www.geocities.jp/mickindex/database/db_tree_ns.html http://www.makizou.com/archives/1637 【取得したデータ例】 SELECT node.name, (COUNT(parent.name) - 1) AS depth FROM node AS node,node AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt GROUP BY node.name ORDER BY node.lft; +------------------------+-------+ | name | depth | +------------------------+-------+ | Apple | 0 | | コンピューター | 1 | | デスクトップPC | 2 | | タワー型 | 3 | | 一体型 | 3 | | ラップトップPC | 2 | | ハンドヘルドPC | 2 | | デジタル音楽プレーヤー | 1 | | 携帯電話 | 1 | | ソフトウェア | 1 | +------------------------+-------+ 【やりたいリスト表示】 <ul> <li>Apple <ul> <li>コンピューター <ul> <li>デスクトップPC <ul> <li>タワー型</li> <li>一体型</li> </ul> </li> <li>ラップトップPC</li> <li>ハンドヘルドPC</li> </ul> </li> <li>デジタル音楽プレーヤー</li> <li>携帯電話</li> <li>ソフトウェア </li> </ul> </li> </ul>

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

nodeテーブルだけ見る限り入れ子の構造モデルになっていませんね? 表示順番で入れ子になるというのはSQL的に不確定要素がおおいです。 (SQLでは順番は保証されないため)

a-z_A-Z
質問者

お礼

ありがとうございます。 何とか力技でやってみます。

a-z_A-Z
質問者

補足

>SQLでは順番は保証されないため id(通し番号)をつけているので、それで並べ替えれば順序は同じではないでしょうか?

関連するQ&A