上一節(jié)中,我們了解到通過循環(huán)可以獲取一個(gè)查詢的所有數(shù)據(jù),在實(shí)際應(yīng)用中,我們并不希望一次性獲取數(shù)據(jù)表中的所有數(shù)據(jù),那樣性能會(huì)非常的低,因此會(huì)使用翻頁功能,每頁僅顯示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";
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求
打開微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報(bào)