Bug #2357
open
https://stackoverflow.com/questions/818567/mysql-pagination-without-double-querying
I almost never do two queries.
Simply return one more row than is needed, only display 10 on the page, and if there are more than are displayed, display a "Next" button.
SELECT x, y, z FROM `table` WHERE `some_condition` LIMIT 0, 11
// iterate through and display 10 rows.
// if there were 11 rows, display a "Next" button.
Your query should return in an order of most relevant first. Chances are, most people aren't going to care about going to page 236 out of 412.
When you do a google search, and your results aren't on the first page, you likely go to page two, not nine.
Good idea, solves problem, and no speed impact.
Also available in: Atom
PDF