這樣才能知道分幾頁。
比如說一個列表結果是126行,如果一頁20行的話那麼分7頁,對吧。
我們的代碼經理是這樣的:
計算總行數:select count(*) from tablename where …..
查詢列表select * from tablename where … limit…
我們看這種方式再沒有任何優化的方式下這樣第個列表都是再次查詢。
首先我們假設數據更新頻率不是很高的情況下,我們點第1頁,第2頁 。。。第n頁 其實第一句sql得到的都是同一個結果,這樣是不是後面都在做重復工作呢。那我們第1頁得到結果數後是不是可以將結果一下傳遞下去就行了。
例如我們分頁鏈接第2頁是這樣的 list.php?page=2&count=126
在程序上加一個判斷:
if ($_get['count']) { $count = $_get['count']; } else { $count =select count(*) from tablename where ….. }
if ($_get['page']<2) { $list = select * from tablename where … limit 0,20 第一頁時直接查詢前20條 if (count($list)=20) { $count =select count(*) from tablename where ….. } else { $count =count($list); } } else { $count = $_get['count']; $list = select * from tablename where … limit page-1*20,page-1*20+20 }