RE: [PHP-DB] Re: paginating : optimising queries
| From: | Patel, Aman | Date: | Tue, 22 Mar 2005 16:21:21 +0000 |
| Subject: | RE: [PHP-DB] Re: paginating : optimising queries | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-38984@lists.php.net to get a copy of this message | ||
I've run in to this situation before. And it turns out that the extra
pre-"count" query is not worth it. So the steps become:
1) Do your main query and fetch the results.
2) Use the count of results obtained in step 1.
3) Calculate pagination numbers.
4) Use array_slice to limit the results to a page window calculated in
step 3.
Hope this helps.
- Aman Patel, Sys Admin / Database / Web Developer, International
Outreach x4076
> -----Original Message-----
> From: Zouari Fourat [mailto:fourat@gmail.com]
> Sent: Tuesday, March 22, 2005 10:03 AM
> To: php-db@lists.php.net
> Subject: [PHP-DB] Re: paginating : optimising queries
>
>
> no one can help me outta here ?
>
>
> On Mon, 21 Mar 2005 01:58:10 +0100, Zouari Fourat
> <fourat@gmail.com> wrote:
> > Hello,
> > i made my own paginating class, it permit me to paginate
> over selected
> > data and let me do good presentation (page 1, page 2 ...) i
> use adodb
> > for db related functions, my application should show in every page
> > this set of informations :
> >
> > Total results : Z, Total page : Y, You are on the page number X.
> >
> > To show thos informations, i must do a count on all the
> table, example
> > : the query built from the form submitted by the user is :
> >
> > select * from table where column=value and column like 'value%'
> >
> > to paginate that query, i'll add some LIMIT or LIMIT OFFSET
> for pgsql
> > (it's adodb frontend) so i'll get only the data for one
> page ! i use
> > this query :
> >
> > select count(*) from table
> >
> > with that global count i can calculate how much pages i have by
> > dividing count on the number of rows to show per page.
> >
> > with this method, the server will suffer for big tables... it's a
> > method that i've made without consulting what people do, can you do
> > this with only ONE query so i can optimise ?
> >
> > thank you for your help
> >
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>