sub ListCategories { my (%cat, $sql_query, $already_run, $parent_cat_id, $indent, $all_cats ); $indent = $_[0]; $parent_cat_id = $_[1]; $already_run = $_[2]; print $query->header if ($already_run ne 'y'); if ($parent_cat_id >= 0) { if ($parent_cat_id == 0) { $all_cats = $dbh->selectall_arrayref("SELECT category_id,name FROM $sql{categories} WHERE parent IS NULL"); } elsif ($parent_cat_id > 0) { $all_cats = $dbh->selectall_arrayref("SELECT category_id,name FROM $sql{categories} WHERE parent=$parent_cat_id"); $indent .= "     "; } foreach my $current_cat (sort { $a->[1] cmp $b->[1] } @{$all_cats}) { ($cat{id}, $cat{name}) = @$current_cat; print "$indent $cat{name} ($cat{id})
"; &ListCategories($indent, $cat{id}, 'y'); } } }