「タスク」というテーブルを持つデータベースを構築しました。テーブル タスクは、タスクを最初のエントリ日順に保持する役割を果たします。Tasks テーブルには、「親」という名前の列があります。この親列により、ユーザーは別のタスクの下に新しいタスクを作成できます。たとえば、id が 21 のタスクがあるとします。21 番目のタスクの下に新しい「子」タスクを作成すると、新しいタスクの親列を 21 に設定します。新しいタスクが 21 番目のタスクの下のタスクであることを意味します。何が起こっているのかを理解しやすくするために、表の画像を含めました。 http://i.stack.imgur.com/M9cmZ.jpg
これらすべてのタスクで私が達成しようとしているのは、それらをツリーとして、順序付けられていないリストとして出力したいということです。リストの構造は次のようになります。
<ul id="tree">
<li><a href="#">A root Task</a>
<ul>
<li><a href="#">child of first task</a>
<ul>
<li><a href="#">grandchildren of first child</a></li>
<li><a href="#">grandchildren of first child</a></li>
</ul>
</li>
<li><a href="#">child of first task</a></li>
<li><a href="#">child of first task</a>
<ul>
<li><a href="#">grandchildren of first child</a></li>
<li><a href="#">grandchildren of first child</a></li>
<li><a href="#">grandchildren of first child</a></li>
</ul>
</li>
<li><a href="#">child of first task</a>
<ul>
<li><a href="#">grandchildren of first child</a></li>
</ul>
</li>
<li><a href="#">child of first task</a></li>
</ul>
</li>
</ul>
私はいくつかのアイデアを思いつきましたが、どれも機能していません。そのためのアイデアはありますか?
上記の例のルート タスクは、その親の値が 0 であるタスク テーブルからのタスクです。親のないタスクが多数存在する可能性があり、別の下にタスクを作成することに制限はありません。