Leser: 19
script.cgi?index=<zahl/wert>
1 2 3 4 5 6 7 8 9 10 11
my $cgi=CGI->new(); $index=int($cgi->param('index') || -1); my $query=" ... FROM ... BY index"; if($index!=-1) { $query.=" WHERE index < ? COUNT 10"; } else { $query.=" COUNT 10"; }
1 2 3
my $pp = 10; my $page = do { ($cgi->param(page) || 0) =~ m/(\d+)/ ? $1 : 0 } * $pp; my $sql = qq{ SELECT ... LIMIT $page OFFSET $pp };
2009-07-27T18:14:14 pq[...]
ich glaub, in postgres gibts auch was entsprechendes statt LIMIT.
[...]
2009-07-27T19:57:09 pq[...] zumindest ist aber das mit dem komma in mysql was eigenes - statt LIMIT x, y sollte man also doch eher LIMI x OFFSET y verwenden. [...]
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]"); };
1 2 3 4 5 6 7 8 9 10 11 12
for (my $var = 1; $var <= $wert; $var++) { # $2 enthält noch immer die aktuelle Seitennummer if ($var == $2){ print $cgi->a({-href=>"../cgi-bin/gaestebuch?page$var", -class=>"gb_link", -style=>"padding-left: 20px; color: red;"},"[Seite$var]");} else{ print $cgi->a({-href=>"../cgi-bin/gaestebuch?page$var", -class=>"gb_link", -style=>"padding-left: 20px; color: black;"},"[Seite $var]");} };