久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

PHP+MYSQL的分頁是怎樣操作的

共計(jì) 2342 個(gè)字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。

本篇文章為大家展示了 PHP+MYSQL 的分頁是怎樣操作的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

寫 php 是簡(jiǎn)單的事, 但是分頁可困擾小弟好一陣子°
因?yàn)槭诌叺臅枚啾?… 本本看不懂說不清 …°
這個(gè)技巧對(duì)行家,雖是簡(jiǎn)易的事,但對(duì)於一位初學(xué)者可會(huì)困擾好一陣子°
如果您也是初學(xué)者,相信本篇可以給您一丁點(diǎn)的收穫°

開始
想要作出分頁的效果,得先想一下,閉上眼吧?
想分頁須要那些資料呢?
1您得先決定每頁要有多少筆資料 ($pagesize),以這個(gè)來除才能得到頁數(shù)°
2總資料筆數(shù)是多少?($total) 如果沒有,相當(dāng)於沒有被除數(shù),一樣是白談了°
3當(dāng)我們要換頁時(shí),得告訴程式,我們要換到第幾頁去($p)°

mysql
有了上述三個(gè),除了13是自行決定的外,2的部分則須從資料庫(kù)計(jì)算出來°
而重點(diǎn)訣竅在於sql的語法,sql的語法有一個(gè) limit
它的用法是
limit 開始位置, 取資料數(shù)
因此我們直接利用其開始位置來得到我們?cè)擁摰馁Y料,而取資料數(shù)則為我們自訂的每頁幾筆°
例子
假設(shè)資料量有 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 三筆, 不過因?yàn)橘Y料不足, 實(shí)際只會(huì)取出 6,7 二筆
select * from 資料表 limit 6,3

觀察與計(jì)算
以上述例子, 首先我們要先統(tǒng)計(jì)資料總數(shù)後再作頁數(shù)的計(jì)算 °
總計(jì)總數(shù)
這個(gè)部分自資料庫(kù)取得來算便知,所以可以利用下列方式

$result = mysql_query(select * from 資料表 // 取全部資料的語法
$total=mysql_num_rows($result);// 取得資料的總數(shù)

8÷3=2…2
在這裡我們可以用到一個(gè) php 的函式 ceil,
其作用可以算出比該數(shù) (浮點(diǎn)數(shù), 有小數(shù)位的) 大的最小整數(shù)
所以總頁數(shù)為 $totalpages= ceil($total/ $pagesize);

分頁開始
要先分頁之前,我們得先決定一個(gè)第幾頁的變數(shù),在這邊預(yù)設(shè)為 $p
另外小弟習(xí)慣頁數(shù)從 0 開始算,也就是
$p=0– gt 第 1 頁,從第0筆開始取,算法 – gt $p*$pagesize– gt0*3=0
$p=1– gt 第 2 頁,從第3筆開始取,算法 – gt $p*$pagesize– gt1*3=3
$p=2– gt 第 3 頁,從第6筆開始取,算法 – gt $p*$pagesize– gt2*3=6

如果您要從 1 開始算也是可以的,不過使用上要再減1就是了
$p=1– gt 第 1 頁,從第0筆開始取,算法 – gt ($p-1)*$pagesize– gt0*3=0
$p=2– gt 第 2 頁,從第3筆開始取,算法 – gt ($p-1)*$pagesize– gt1*3=3
$p=3– gt 第 3 頁,從第6筆開始取,算法 – gt ($p-1)*$pagesize– gt2*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

跳到指定頁
另外我們要如何將分頁的頁數(shù) $p 給程式呢?
一般而言都是靠連結(jié)的方式將 $p 的值傳入
第 1 頁
第 2 頁
第 3 頁
………..
……
當(dāng)然您也可以利用其他的方式來作.. 不過在這邊不詳述了°

[@more@]

實(shí)作練習(xí)
接來秀出一個(gè)完整的程式碼的流程讓大家清楚整個(gè)流程:

?
$pagesize=2;// 決定好每頁筆數(shù)
$link = mysql_connect(服務(wù)器 , 帳號(hào) , 密碼) or die(無法連線! 請(qǐng)連絡(luò)管理者!
// 連線到資料庫(kù)主機(jī)
mysql_select_db(資料庫(kù) ,$link) or die(無法連到資料庫(kù)! 請(qǐng)連絡(luò)管理者!
// 選擇資料庫(kù)

$result = mysql_query(select * from 資料表
///////////// 先取全部資料, 用於計(jì)算總數(shù)上
$total=mysql_num_rows($result);
///////////////// 計(jì)算並取得資料的總數(shù)
echo 總筆數(shù) .$total;
$totalpages= ceil($total/ $pagesize);
echo 總頁數(shù) .$totalpages;
// 計(jì)算並顯示總頁數(shù)
for ($i=0;$i $totalpages;$i++) {
? 第頁
?
}
////////////////// 以迴圈來跑頁數(shù),利用 $i+ 1 讓顯示時(shí)是第 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))
{
// 顯示結(jié)果迴圈
echo $row[name

}

?

上述內(nèi)容就是 PHP+MYSQL 的分頁是怎樣操作的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-27發(fā)表,共計(jì)2342字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 同德县| 永城市| 郓城县| 乐山市| 安徽省| 盘锦市| 龙岩市| 察雅县| 马龙县| 龙川县| 盘山县| 吐鲁番市| 本溪| 璧山县| 依安县| 沙湾县| 象州县| 张家口市| 鄯善县| 黄冈市| 扎囊县| 乌拉特后旗| 托克逊县| 太和县| 郸城县| 青铜峡市| 隆尧县| 东乌珠穆沁旗| 三都| 东乡族自治县| 崇义县| 岳阳县| 西华县| 新沂市| 金乡县| 珠海市| 洞头县| 新竹市| 秦安县| 西充县| 固镇县|