上一節(jié)中,我們了解到通過循環(huán)可以獲取一個(gè)查詢的所有數(shù)據(jù),在實(shí)際應(yīng)用中,我們并不希望一次性獲取數(shù)據(jù)表中的所有數(shù)據(jù),那樣性能會非常的低,因此會使用翻頁功能,每頁僅顯示10條或者20條數(shù)據(jù)。
通過mysql的limit可以很容易的實(shí)現(xiàn)分頁,limit m,n表示從m行后取n行數(shù)據(jù),在PHP中我們需要構(gòu)造m與n來實(shí)現(xiàn)獲取某一頁的所有數(shù)據(jù)。
假定當(dāng)前頁為$page,每頁顯示$n條數(shù)據(jù),那么m為當(dāng)前頁前面所有的數(shù)據(jù),既$m = ($page-1) * $n,在知道了翻頁原理以后,那么我們很容易通過構(gòu)造SQL語句在PHP中實(shí)現(xiàn)數(shù)據(jù)翻頁。
$page = 2;
$n = 2;
$m = ($page - 1) * $n;
$sql = "select * from user limit $m, $n";
$result = mysql_query($sql);
//循環(huán)獲取當(dāng)前頁的數(shù)據(jù)
$data = array();
while ($row = mysql_fetch_assoc($result)) {
$data[] = $row;
}
在上面的例子中,我們使用了$m與$n變量來表示偏移量與每頁數(shù)據(jù)條數(shù),但我們推薦使用更有意義的變量名來表示,比如$pagesize, $start, $offset等,這樣更容易理解,有助于團(tuán)隊(duì)協(xié)作開發(fā)。
構(gòu)建分頁查詢語句,實(shí)現(xiàn)翻頁功能。
在第10行以后輸入以下代碼
$offset = ($page - 1) * $pagesize; $sql = "select * from user limit $offset, $pagesize";
請驗(yàn)證,完成請求
由于請求次數(shù)過多,請先驗(yàn)證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報(bào)