function ShowTree($ParentID, $lvl) { global $data; // глобальная переменная для записи строки в неё global $link; // Настройки БД global $lvl; // уровень вложенности, всегда можно узнать/вывести его используя $lvl $lvl++; // инкремент уровня $sSQL = "SELECT id,name,p_id FROM categories WHERE p_id=" . $ParentID . " ORDER BY name"; // выбираем всё где parrent_id $ParentID $result = mysql_query($sSQL, $link); // результат if (mysql_num_rows($result) > 0) { // если есть результат $data .= "<ul>"; while ($row = mysql_fetch_array($result)) { // пока будет выполнятся условия с parent_id = $ParentID $ID1 = $row["id"]; // задаём этой переменной значение id, оно будет использовано как parent_id в следующем цикле $data .= "<li>"; $data .= $row["name"]; $data .= "</li>"; ShowTree($ID1, $lvl); // вызыввем рекурсивно функцию c заданым $lvl, а в $ParentID передаём id с этого цикла $lvl--; // уменьшаем $lvl на 1 } $data .= "</ul>"; } return $data; }
function ShowTree(&$tree) { echo '<ul>'; foreach ($tree as &$item) { echo '<li id="' . $item['Unit_ID'] . '">' . $item['Unit_Name']; if (!empty($item['subitems'])) { ShowTree($item['subitems']); } echo '</li>'; } echo '</ul>'; }