sub erstelle_navs {    my $insert_id = shift;    my $parent = shift;    my $vnav = get_template_bn('vnav');    my $vnav_sub = get_template_bn('vnav_sub');    do {        # -- ist die aktuelle Nummer überhaupt irgendwo als parent angegeben?        my $cmd0 = "SELECT parent FROM seiten";        my $sth0 = $dbh->prepare($cmd0) || die $dbh->errstr;        my $rv0 = $sth->execute || die $dbh->errstr;        if( $rv0 eq "0E0" ){            last;        }else{            my $found = 0;            while( my ($proveParent) = $sth0->fetchrow_array() ){                if( $proveParent == $parent ){                    $found = 1;                }            }            unless( $found ){                $parent--;                next;            }        }        # gibt an, dass was gemacht wurde        $template->param( "error" => "seite erstellt ($parent)" );        my $cmd = undef;        if( $parent == 0 ){            # oberste Ebene: visible egal, da visible nur für subnavs!            $cmd = "SELECT keyword, titel FROM seiten WHERE parent='$parent'";        }else{            $cmd = "SELECT keyword, titel FROM seiten WHERE parent='$parent' and visible=1";        }        my $sth = $dbh->prepare($cmd) || die $dbh->errstr;        my $rv = $sth->execute || die $dbh->errstr;        my $vnav_template = undef;        if ( $parent == 0 ){            $vnav_template = $vnav;        }else{            $vnav_template = $vnav_sub;        }        my @rec_sites = (); # merken, für welche Seiten die Nav erstellt wird        my $seiten = []; #array für LOOP-values        while( my ($keyword, $titel) = $sth->fetchrow_array() ) {            push @{ $seiten }, { "link" => $cgi->a( {href => $template->{relative_url} . "?action=$keyword" }, "$titel") };            push @rec_sites, $titel;        } # while( my ($keyword, $titel) = $sth->fetchrow_array() ) {        $sth->finish();        # dieselbe Nav für alle mit gleichem parent!        my $vnav_zw_t = HTML::Template->new(arrayref => [$vnav_template], die_on_bad_params => 0, associate => [$template, $cgi] );        $vnav_zw_t->param( "vnav" => $seiten );        # insert        foreach my $elem ( @rec_sites ) {            my $cmd1 = "UPDATE seiten SET vnav=" . $dbh->quote( $vnav_zw_t->output() ) . " WHERE titel=" . $dbh->quote($elem);            unless ($dbh->do($cmd1)) {                die($dbh->errstr, "Error in executing Sql-Statement:\n\t$cmd1");            }        }        $parent--;    }while( $parent >= 0 ) # do } #erstelle_navs