PHP+MYSQL的分页是怎样运作的
发布时间:2022-01-12 14:33:13 所属栏目:MySql教程 来源:互联网
导读:本篇文章为大家展示了PHP+MYSQL的分页是怎样操作的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 寫php是簡單的事,但是分頁可困擾小弟好一陣子 因為手邊的書好多本...本本看不懂說不清... 這個技巧對行家,雖
本篇文章为大家展示了PHP+MYSQL的分页是怎样操作的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 寫php是簡單的事,但是分頁可困擾小弟好一陣子° 因為手邊的書好多本...本本看不懂說不清...° 這個技巧對行家,雖是簡易的事,但對於一位初學者可會困擾好一陣子° 如果您也是初學者,相信本篇可以給您一丁點的收穫° 開始 想要作出分頁的效果,得先想一下,閉上眼吧? 想分頁須要那些資料呢? 1您得先決定每頁要有多少筆資料($pagesize),以這個來除才能得到頁數° 2總資料筆數是多少?($total)如果沒有,相當於沒有被除數,一樣是白談了° 3當我們要換頁時,得告訴程式,我們要換到第幾頁去($p)° mysql 有了上述三個,除了13是自行決定的外,2的部分則須從資料庫計算出來° 而重點訣竅在於sql的語法,sql的語法有一個limit 它的用法是 limit 開始位置,取資料數 因此我們直接利用其開始位置來得到我們該頁的資料,而取資料數則為我們自訂的每頁幾筆° 例子 假設資料量有8筆資料,我們要每3筆一頁,則sql語法如下: 第1頁==>取出0,1,2三筆 select * from 資料表 limit 0,3 第2頁==>取出3,4,5三筆 select * from 資料表 limit 3,3 第3頁==>取出6,7,8三筆,不過因為資料不足,實際只會取出6,7二筆 select * from 資料表 limit 6,3 分頁開始 要先分頁之前,我們得先決定一個第幾頁的變數,在這邊預設為$p 另外小弟習慣頁數從0開始算,也就是 $p=0-->第1頁,從第0筆開始取,算法--> $p*$pagesize-->0*3=0 $p=1-->第2頁,從第3筆開始取,算法--> $p*$pagesize-->1*3=3 $p=2-->第3頁,從第6筆開始取,算法--> $p*$pagesize-->2*3=6 如果您要從1開始算也是可以的,不過使用上要再減1就是了 $p=1-->第1頁,從第0筆開始取,算法--> ($p-1)*$pagesize-->0*3=0 $p=2-->第2頁,從第3筆開始取,算法--> ($p-1)*$pagesize-->1*3=3 $p=3-->第3頁,從第6筆開始取,算法--> ($p-1)*$pagesize-->2*3=6 接下來,再看看語法 第1頁==>$p=0,取出0,1,2三筆 select * from 資料表 limit 0,3 select * from 資料表 limit $p *$pagesize ,$pagesize 第2頁==>$p=1,取出3,4,5三筆 select * from 資料表 limit $p* $pagesize, $pagesize 第3頁==>$p=2,取出6,7,8三筆 select * from 資料表 limit 6,3 select * from 資料表 limit $p* $pagesize, $pagesize 綜合上述得到的分頁語法則為 select * from 資料表 limit $p* $pagesize, $pagesize 跳到指定頁 另外我們要如何將分頁的頁數$p給程式呢? 一般而言都是靠連結的方式將$p的值傳入 第1頁 第2頁 第3頁 ........... ...... 當然您也可以利用其他的方式來作..不過在這邊不詳述了° $result = mysql_query("select * from 資料表 "); /////////////先取全部資料,用於計算總數上 $total=mysql_num_rows($result); /////////////////計算並取得資料的總數 echo "總筆數".$total; $totalpages= ceil($total/ $pagesize); echo "總頁數".$totalpages; //計算並顯示總頁數 for ($i=0;$i<$totalpages;$i++) { ?>>第頁 <? } //////////////////以迴圈來跑頁數,利用$i+1讓顯示時是第1頁開始 $p = $_GET['p']; if ($p==''){ $p=0; } ///////////////////若沒指定第幾頁就從第0頁開始 $sql="select * from 資料表 limit ".$p*$pagesize.",".$pagesize; /////////////只取部分資料,用於顯示 $res = mysql_query($sql); echo " "; while ($row = mysql_fetch_array($res)) { //顯示結果迴圈 echo $row["name"]; } ?> 上述内容就是PHP+MYSQL的分页是怎样操作的,你们学到知识或技能了吗? (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |