From d8aa4854e96a72622cfb26d2197afbcb58c52784 Mon Sep 17 00:00:00 2001 From: josch Date: Sun, 28 Oct 2007 03:06:01 +0000 Subject: [PATCH] pagination now works git-svn-id: http://yolanda.mister-muffin.de/svn@147 7eef14d0-6ed0-489d-bf55-20463b2d70db --- trunk/account.pl | 11 ++++++----- trunk/search.pl | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/trunk/account.pl b/trunk/account.pl index 7eee746..155c142 100644 --- a/trunk/account.pl +++ b/trunk/account.pl @@ -83,15 +83,15 @@ if($username) #execute it $resultcount = $sth->execute($session->id, $session->id) or die $dbh->errstr; - $rowsperpage = 2; + $pagesize = 2; - #rediculous but funny round up, will fail with 1000000000000000 results per page - #on 0.00000000000001% of all queries - this is a risk we can handle - $lastpage = int($resultcount/$rowsperpage+0.999999999999999); + #rediculous but funny round up, will fail with 100000000000000 results per page + #on 0.0000000000001% of all queries - this is a risk we can handle + $lastpage = int($resultcount/$pagesize+0.99999999999999); $currentpage = $query->param('page') or $currentpage = 1; - $dbquery .= " limit ".($currentpage-1)*$rowsperpage.", ".$rowsperpage; + $dbquery .= " limit ".($currentpage-1)*$pagesize.", ".$pagesize; #prepare query $sth = $dbh->prepare($dbquery) or die $dbh->errstr; @@ -102,6 +102,7 @@ if($username) $page->{'results'}->{'lastpage'} = $lastpage; $page->{'results'}->{'currentpage'} = $currentpage; $page->{'results'}->{'resultcount'} = $resultcount; + $page->{'results'}->{'pagesize'} = $pagesize; #get every returned value while (my ($id, $title, $publisher, $timestamp, $duration, $viewcount) = $sth->fetchrow_array()) diff --git a/trunk/search.pl b/trunk/search.pl index 95d6c82..cd1835c 100644 --- a/trunk/search.pl +++ b/trunk/search.pl @@ -93,15 +93,15 @@ if($query->param('query') or $query->param('orderby')) #execute it $resultcount = $sth->execute(@args) or die $dbh->errstr; - $rowsperpage = 2; + $pagesize = $query->param('pagesize') or $pagesize = 5; - #rediculous but funny round up, will fail with 1000000000000000 results per page - #on 0.00000000000001% of all queries - this is a risk we can handle - $lastpage = int($resultcount/$rowsperpage+0.999999999999999); + #rediculous but funny round up, will fail with 100000000000000 results per page + #on 0.0000000000001% of all queries - this is a risk we can handle + $lastpage = int($resultcount/$pagesize+0.99999999999999); $currentpage = $query->param('page') or $currentpage = 1; - $dbquery .= " limit ".($currentpage-1)*$rowsperpage.", ".$rowsperpage; + $dbquery .= " limit ".($currentpage-1)*$pagesize.", ".$pagesize; #prepare query $sth = $dbh->prepare($dbquery) or die $dbh->errstr; @@ -112,6 +112,7 @@ if($query->param('query') or $query->param('orderby')) $page->{'results'}->{'lastpage'} = $lastpage; $page->{'results'}->{'currentpage'} = $currentpage; $page->{'results'}->{'resultcount'} = $resultcount; + $page->{'results'}->{'pagesize'} = $pagesize; #get every returned value while (my ($id, $title, $creator, $description, $publisher, $timestamp, $duration, $viewcount, $relevance) = $sth->fetchrow_array())