Re: Pagination of search results
От | Damián Culotta |
---|---|
Тема | Re: Pagination of search results |
Дата | |
Msg-id | 003601c5f389$759a9020$6401a8c0@workstation обсуждение исходный текст |
Ответ на | Pagination of search results (Neil Saunders <n.j.saunders@gmail.com>) |
Список | pgsql-php |
If you sotre the count into a session, maybe you show incorrect information. It's possible that someone insert a new record when you are changing from one page to another. Sorry, my english it's very bad. ----- Original Message ----- From: "Cstdenis" <cstdenis@voicio.com> To: "Neil Saunders" <n.j.saunders@gmail.com>; <pgsql-php@postgresql.org> Sent: Saturday, November 26, 2005 5:59 AM Subject: Re: [PHP] Pagination of search results > Get the count once and store it in a session. > > ----- Original Message ----- > From: "Neil Saunders" <n.j.saunders@gmail.com> > To: <pgsql-php@postgresql.org> > Sent: Wednesday, November 23, 2005 8:14 AM > Subject: [PHP] Pagination of search results > > > Hi, > > I'm writing a search engine, the results of which will displayed in > blocks of 25, paginated. I will also display the number of records > found (1-25 of 345). > > I'm trying to determine the most efficient way to implement this. > Since the session is dropped after the script is terminated, I'm > ruling our cursors. Also, cursors would prevent me from retrieving the > total number of records potentially returned from a search, and so I > couldn't display the correct number of page links. Also, this would > require persistent connections, which I'd like to avoid for a number > of reasons. > > The best I've come up with is "SELECT b.*, c.cnt FROM table AS b, > (SELECT COUNT(1) AS cnt FROM table WHERE <LOTS OF CLAUSES>) AS c WHERE > <SAME LOT OF CLAUSES> LIMIT 25 OFFSET 0" > > However this means that the query is essentially getting executed > twice for each page. > > Is there any better way of implementing this? All advice gratefully > received. > > Kind Regards, > > Neil Saunders. > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend > > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings > >
В списке pgsql-php по дате отправления: