Thread Seitenweise Darstellung eines Gästebuches
(9 answers)
Opened by tecker at 2009-07-27 18:15
Hi,
hab die anderen Antworten eben erst gelesen aber inzwischen eine funktionierende Lösung auf die Reihe bekommen. Hier mal die relevanten Auszüge: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 [...] # Seite wird mit Parameter aufgerufen (.pl?page1, .pl?page2, etc) my $wert = 1; my $page = $ENV{"QUERY_STRING"}; $page =~ /(page)(\d)/; # $2 enthält die Seitennummer und $value den letzten Eintrag der aktuellen Seite, also bspw. bei Page 4 ist value = 30 my $value = $2*10-10; [...] # SQL Abfrage der Gästebucheinträge entsprechend des values und mit LIMIT my $sql_gb_entries = "SELECT * FROM gaestebuch where id<=(select max(id)-$value from gaestebuch) ORDER BY id DESC LIMIT 10"; my $prepare_sql = $dbh->prepare( $sql_gb_entries) || die $dbh->errstr; $prepare_sql->execute() || die $dbh->errstr; my ($id,$name,$date,$mail,$message); $prepare_sql->bind_columns( \$id,\$name,\$date,\$mail,\$message); [...] # Abfrage der Anzahl aller Einträge my $sql_gb_total = "SELECT count(id) from gaestebuch"; my $prepare_sql_total = $dbh->prepare( $sql_gb_total ) || die $dbh->errstr; $prepare_sql_total->execute() || die $dbh->errstr; [...] my ($total_entries); $prepare_sql_total->bind_columns( \$total_entries); # $wert gibt mir an wieviele Seiten ich darzustellen habe, da ich auf 10Einträge pro Seite beschränken will [...] while($total_entries > $wert*10){ $wert++; } [...] # Bilden der Seiten-Links for (my $var = 1; $var <= $wert; $var++) { print $cgi->a({-href=>"../cgi-bin/gaestebuch?page$var", -class=>"gb_link", -style=>"padding-left: 20px; "},"[Seite $var]"); }; Es funktioniert und es müssen auch keine ID`s in der DB aufegrückt werden nach dem Löschen von Einträgen. DIe Darstellung der Einträge habe ich jetzt mal weggelassen. Die habe ich in einer while($prepare_gb_entries->fetch()){} Schleife. Eine Frage noch ... Wie könnte ich den Link der aktuellen Seite andersfarbig gestalten?? Prinzipiell weiß ich es, aber nicht bei dieser Konstellation. Danke für die Hilfe Last edited: 2009-07-29 04:21:20 +0200 (CEST) |