-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Granted, I use a few MySQL features for this; I'm not sure if LIMIT
exists in postgresql, and I'm fairly sure that the SQL_CALC_FOUND_ROWS
directive (which will return the total rows in a select statement
regardless of the LIMIT directives) doesn't...

Postgres has LIMIT and OFFSET. To determine the number of rows returned,
you can simply look at the return value of execute, or you can call
$sth->rows:

my $numrows = $sth->execute(1,2,42);

my $numrows2 = $sth->rows;

(b) Repeat the query (making sure there is a sort criterium) at each
    page request, starting at a variable offset and limiting the
    result set

Generally, give solution (b) a try, by using LIMIT and OFFSET. It's a pretty
standard way of doing things. As mentioned, this will not work so well if the
table is changing between page views. If that is the case, and you truly want
a static view of the table from when they ran the first request, you'll
probably have to go to a lot more trouble, probably by creating copies of
the table if updates or deletes are being run, or storing the primary keys
if it is all inserts.

- --
Greg Sabino Mullane [EMAIL PROTECTED]
PGP Key: 0x14964AC8 200603310921
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iD8DBQFELTsdvJuQZxSWSsgRAuvMAJwNIAoDo3vWGIEc6UI5Afme9HDsegCfRu7c
q0Eif3BWRCetvt81tNurhIc=
=z6Up
-----END PGP SIGNATURE-----


Reply via email to