NYCPHP Meetup

[nycphp-talk] Using Pagination

Gary Mort bz-gmort at beezifies.com
Thu Aug 23 16:10:24 EDT 2007


PaulCheung wrote:
> I am really sorry to have to ask your help once again, but no matter how
> hard I try I can't seem to understand how pagination works
>
> I created a MySQL database called "test_db" and then  set up the demo 
> table
> "products". the products.php is just a dummy.
>
> nate.php is the coding.
>
> I am trying to paginate through the records one by one.(view each 
> record, in
> this case).
>

There are 2 kinds of pagination.

One assumes the data is dynamic and could change at any point in time.  
So, for every query you run, you save off a copy of the data to disk and 
use that report for forward and back.

The other kind assumes the data is static(a list of products that is 
rarely updated, for example) and that you don't care about the 
occassional odd case of someone trying to go forward or back and not 
getting what they would expect.

For the latter case,  you just need to know what record you were looking 
at in the table and use the limit command on your SQL.

IE, LIMIT 0,1

Start at the first record, give me 1 record

So when they click forward or back, they send row=3 or row=1 assuming 
your on the second row

Than you set $rownum to the row variable, and your query becomes
LIMIT $rownum, 1

The problem with this case is say there are 100 records in the database, 
and the person is on #90
While they are there, you delete record 89 and then they use the 
previous button to load record 89..it loads what used to be record 
90(the one they were looking at).

Honestly, it's not elegant, but this is good enough for many situations.



More information about the talk mailing list