Thread nochmal HTML::Template und DBI: diesmal: LOOPs (5 answers)
Opened by pktm at 2004-12-30 20:19

pktm
 2004-12-30 20:19
#641 #641
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!
Ich würde gerne eine Loop-Variable füttern, die mir eine Select-Box mit allen Seiten-Titeln der Webseiten meines CMS erzeugt.
Da es aber (wie gerade) vorkommen kann, dass sich garkeine Webseiten in der Datenbank befinden würde ich diesen Fall gerne abfangen.

Im Moment will ich das so machen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
                my $cmd = "SELECT titel FROM seiten";
                my $sth = $dbh->prepare($cmd) || die $dbh->errstr;
                if( my $rv = $sth->execute ){
                    print Dumper( $rv );
                    if( $rv ){
                        $template->param( "SEITEN" => [ %{ $sth->fetchrow_hashref } ] );
                    }else{
                        $template->param( "SEITEN" => [ { titel => 'keine Seite vorhanden',  } ] );
                    }
                }else{
                    die "Konnte Seitentitel nicht aus seiten-Datenbank lesen: " . $dbh->errstr;
                }

1. Datenbank auslesen
2. Returncode auswerten
=> 1. Problem, ich bekomme hier kein 0 oder undef zurück, sondern 0E0. Ansich kein Problem, das kann man ja auch noch abfangen.
Nur hab eich keine Lust jede erdenkliche Fehlermeldung abfangen zu müssen, besonders nciht dann, wenn der Titel einer Webseite auch 0E0 sein kann...
3. Wenn nicht aus der DB gelesen werden kann (Fehler oder keine Seite), dann soll die Loop-Variable wie o.g. gefüttert werden.
Vielleicht werde ich hier mal <TMPL IF> ausprobieren.
=> weiteres Problem:
Wenn ich den Returncode 0E0 abfange bekomme ich trotzdem keine Ausgabe in der Variable <TMPL_LOOP> obwohl dort ja eigentlich "keine Seite vorhenden" stehen sollte.
Wenn ich den Returncode aber nur wie oben dargestellt abfange geht das Prog natürlich in die erste Schleife rein und versucht Daten zu lesen.
Das geht natürlich ohne Daten schief.

So, hat wer eine Lösung bzw. sieht wer, warum die <TMPL_LOOP> nicht gefüllt wird?
Ich habe die Datenstruktur entsprechend der Manpage übernommen.
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread nochmal HTML::Template und DBI: diesmal: LOOPs