Thread Seitenweise Darstellung eines Gästebuches (9 answers)
Opened by tecker at 2009-07-27 18:15

tecker
 2009-07-29 03:59
#123648 #123648
User since
2008-02-26
77 Artikel
BenutzerIn
[Homepage] [default_avatar]
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)

View full thread Seitenweise Darstellung eines Gästebuches