function buildCategoryOptionTree($id, $depth=0, $html="") { global $mysql; $thisCategory = $mysql->query("SELECT * FROM `categories` WHERE `id`='$id'"); $data = $thisCategory->fetchArray(); $html .= "\n"; $subcategories = $mysql->query("SELECT * FROM `categories` WHERE `parent_id`='$id'"); if($subcategories->numRows > 0) { $depth++; while($row = $subcategories->fetchArray()) { $html .= buildCategoryOptionTree($row['id'], $depth, $html); } } return $html; } $result = $mysql->query("SELECT * FROM `categories` WHERE `parent_id`='0' ORDER BY `name`"); while($row = $result->fetchArray()) { $categoriesHTML .= buildCategoryOptionTree($row['id'], null); }