請教各位前輩一下
我一直不知道如何去寫一個分頁顯示資料的php網頁
網路上抓別人的下來 一堆函數 真的是看不懂
不知道有沒有什麼簡易明瞭的方法呢?
2006-02-13 05:27:56 · 2 個解答 · 發問者 Osama 1 in 電腦與網際網路 ➔ 程式設計
第一部份:做出分頁連結
首先要先知道總共有幾筆資料
假設$result是己經用mysql_query查好的結果
$datacount = mysql_num_rows($result);
所以如果資料表有23筆資料
那$datacount的值就會是23;
接著看你一頁要列出幾筆資料,假設一頁十筆
那就要將總資筆數除以10筆,有餘數要無條件進位
這樣才能做出完整的分頁,例如以下這樣
$pagecount = ceil($datacount/10);
所以$pagecount的值是3,是總共要分的頁數
接著是要做連結至各分頁的按鈕
for($i=0;$i<$pagecount;$i++){
echo ' '.$i.' ';
}
$PHP_SELF是要連結到自己
因為$pagecount是3所以在html上會列出以下這樣(假設本頁是xx.php)
0
1;
2;
也就是會有3個按鈕
第二部份:處理分頁
接下來
是要寫當造訪者按下了其中一個按鈕的處理過程
我們要用get來取得pegenode的變數
另外還要給二個範圍的變數,例如1~10,11~20
所以寫法就會像以下這樣
$above = $_GET["pagenode"]*10+1;
$under = $above+9;
所以假設$pagenode是1,那$above就是11,under就是20
確定好範圍後
就要根據範圍列出資料,例如
while($data= mysql_fetch_row($result)){
$j++;
if($j>$above && $j<=$under){
echo "
".$j;
print_r($data);
}
}
全部寫在一起會像以下這樣
$datacount = mysql_num_rows($result);
$pagecount = ceil($datacount/10);
for($i=0;$i<$pagecount;$i++){
echo ' '.$i.' ';
}
$above = $_GET["pagenode"]*10+1;
$under = $above+9;
while($data= mysql_fetch_row($result)){
$j++;
if($j>=$above && $j<=$under){
echo "
".$j;
}
}
2006-02-13 15:03:31 補充:
如果用mysql的limit的話做法可以像以下這樣$above = $_GET["pagenode"]*10;$result = mysql_query("select*from tablename LIMIT ".$above." , 10");//$above這裡是開始列出的位數,10是要列出的數量while($data= mysql_fetch_row($result)){ print_r($data); }}
2006-02-13 09:46:29 · answer #1 · answered by 阿牛 1 · 0⤊ 0⤋
沒有什麼最簡單的方法啦,這個問題本身就是很簡單的問題。只要您知道該怎麼做,什麼方法都很簡單!首先既然要做分頁,您應該需要知道取出的資料有多少,然後再除以分頁條件(例如:20筆一頁)。接著再用 SQL 指令取出指定筆數。(SQL 關鍵字:limit )再把它傾印出來就可以了。更詳細的作法,您可以參閱那些抓下來的鬼東西去試著做做看!
2006-02-13 08:04:19 · answer #2 · answered by Faryne 6 · 0⤊ 0⤋