Печать всех элементов строки в виде дерева в PHP

Я создал базу данных с таблицей «Задачи». Задачи таблиц отвечают за выполнение задач в порядке их первой даты ввода. Таблица задач имеет столбец с именем «parent». Этот родительский столбец позволяет пользователю создать новую задачу под другой задачей. Например, у нас есть задача, ее идентификатор равен 21. Когда мы создаем новую «дочернюю» задачу под 21-й задачей, мы устанавливаем родительский столбец новой задачи равным 21; так что это означает, что новая задача – задача под 21-й задачей. Я включил изображение стола, чтобы было легче понять, что происходит. http://img.ruphp.com/php/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. Их может быть много, без родительских задач, и не будет ограничений на создание задачи под другим.