/ Published in: PHP
Expand |
Embed | Plain Text
Comments
Subscribe to comments
You need to login to post a comment.
iroybot on 02/10/09
7 people have marked this snippet as a favorite
cessnajumpin
PapTom
lfatr
pezland
vali29
iroybot
nerdfiles
Subscribe to comments
You need to login to post a comment.
Let's say we want to show 4 items per page. Let's calculate this through:
first case: we have 8 items. 8 divided by 4 is 2 so we need two pages. good
second case: we have 9 items. 9 divided by 4 gives us 2.25.
So we clearly need a 3rd page here. That's why I compare two values here: the actual division result and one with an extra 0.499 added what gives us 2.749. (lines 2-4) lines 5-6 we round both results in order to find out if they get rounded to different integers. if they differ by 1 we have a scenario where we want another page, so we pick the bigger result as our page number. (lines 7-8). if they get rounded to the same integer we are happy and use the smaller number.
note: if we added 0.5 instead of 0.499 the first case would give us 2.5 which would have been rounded to 3. but actually we are fine with 2 pages for 8 items.
now that we know our actual page count we can do something like
while($i = 1;$i <= $pages; $i++) { print '<a href="?page=' . $i . '">'; }
shame on me... use PHPs native ceil() function (instead of this crazy +.499 guessing, I did...)