Tento článek je do budoucna spíše připomenutí pro mou maličkost, protože časem určitě někam zašantročím zdrojáky webu, na kterém nyní pracuju v práci. Aktuálně jsem řešil výpis kategorií a jejich podkategorií, které nemají žádné definované mantinely, takže výsledkem je strom, kterým procházet je na první pohled náročné. No naštěstí je to celkem triviální. Následující kód projde celý strom, tedy pokud je volaný s počátečním seznamKategoriiTechniky(0). Práci s DB si upravte dle svých zvyků. Já na tom mám samostatnou třídu, s kterou se pracuje viz. kód. Kód je jen pro ukázku rekurze, takže se v něm neřeší grafika výsledku.
function seznamKategoriiTechniky($kat) { global $seznam; if (!isset($kat)) { $kat = 0; } if (!is_int($kat)) { $kat = 0; } if ($kat == 0) { $seznam = ""; } $db = new sql(); $pojistka = 0; $res = $db->query("select * from kategorie_techniky where smazane=0 and nadrazena_kategorie=$kat order by nazev asc", ""); while ( $data = $db->res->fetch($res) ) { $seznam .= '<option>'.$data['nazev'].'</option>'; seznamKategoriiTechniky($data['id']); $pojistka++; if ($pojistka >= 100) { break; } } return $seznam; }