學習php分頁代碼實例,php分頁思路

本文目錄一覽:

php分頁代碼

?php

/**

* @author SEPH

* @desc pageft

* @date 2009-4-20

*/

//為了避免重複包含文件而造成錯誤,加了判斷函數是否存在的條件:

if(!@function_exists(pageft)){

//定義函數pageft(),三個參數的含義為:

//$totle:信息總數;

//$displaypg:每頁顯示信息數,這裡設置為默認是20;

//$url:分頁導航中的鏈接,除了加入不同的查詢信息「page」外的部分都與這個URL相同。

// 默認值本該設為本頁URL(即$_SERVER[“REQUEST_URI”]),但設置默認值的右邊只能為常量,所以該默認值設為空字元串,在函數內部再設置為本頁URL。

function pageft($totle,$displaypg=20,$url=”){

//定義幾個全局變數:

//$page:當前頁碼;

//$firstcount:(資料庫)查詢的起始項;

//$pagenav:頁面導航條代碼,函數內部並沒有將它輸出;

//$_SERVER:讀取本頁URL「$_SERVER[“REQUEST_URI”]」所必須。

global $page,$firstcount,$pagenav,$_SERVER;

//為使函數外部可以訪問這裡的「$displaypg」,將它也設為全局變數。注意一個變數重新定義為全局變數後,原值被覆蓋,所以這裡給它重新賦值。

$GLOBALS[“displaypg”]=$displaypg;

/*if(!$page) $page=1*/;

if(@$_GET[‘page’])

$page = intval($_GET[‘page’]);

else

$page = 1;

//如果$url使用默認,即空值,則賦值為本頁URL:

if(!$url){ $url=$_SERVER[“REQUEST_URI”];}

//URL分析:

$parse_url=parse_url($url);

$url_query=@$parse_url[“query”]; //單獨取出URL的查詢字串

if($url_query){

//因為URL中可能包含了頁碼信息,我們要把它去掉,以便加入新的頁碼信息。

//這裡用到了正則表達式,請參考「PHP中的正規表達式」()

$url_query=ereg_replace(“(^|)page=$page”,””,$url_query);

//將處理後的URL的查詢字串替換原來的URL的查詢字串:

$url=str_replace($parse_url[“query”],$url_query,$url);

//在URL後加page查詢信息,但待賦值:

if($url_query) $url.=”page”; else $url.=”page”;

}else {

$url.=”?page”;

}

//頁碼計算:

$lastpg=ceil($totle/$displaypg); //最後頁,也是總頁數

$page=min($lastpg,$page);

$prepg=$page-1; //上一頁

$nextpg=($page==$lastpg ? 0 : $page+1); //下一頁

$firstcount=($page-1)*$displaypg;

//開始分頁導航條代碼:

$pagenav=”顯示第 B”.($totle?($firstcount+1):0).”/B-B”.min($firstcount+$displaypg,$totle).”/B 條記錄,共 $totle 條記錄BR”;

//如果只有一頁則跳出函數:

if($lastpg=1) return false;

$pagenav.=” a href=’$url=1′ target=_self首頁/a “;

if($prepg) $pagenav.=” a href=’$url=$prepg’ target=_self前頁/a “; else $pagenav.=” 前頁 “;

if($nextpg) $pagenav.=” a href=’$url=$nextpg’ target=_self後頁/a “; else $pagenav.=” 後頁 “;

$pagenav.=” a href=’$url=$lastpg’ target=_self尾頁/a “;

//下拉跳轉列表,循環列出所有頁碼:

$pagenav.=” 到第 select name=’topage’ size=’1′ onchange=’window.location=\”$url=\”+this.value’\n”;

for($i=1;$i=$lastpg;$i++){

if($i==$page) $pagenav.=”option value=’$i’ selected$i/option\n”;

else $pagenav.=”option value=’$i’$i/option\n”;

}

$pagenav.=”/select 頁,共 $lastpg 頁”;

}

}/*沒有用Get傳值*/

?

PHP怎麼製作分頁

方法/步驟

首先要了解下分頁的原理即

SELECT * FROM table …… limit 開始位置 , 操作條數

開始位置從0開始

SELECT * FROM table …… limit 0 , 20

取最前面20條

SELECT * FROM table …… limit 10 , 20

11條到20條

其次分頁要用的公式

得到公式

(當前頁數 – 1 )X 每頁條數 , 每頁條數

Select * from table limit ($Page- 1) * $PageSize, $PageSize

還要了解parse_url()解析URL函數

parse_url() 是講URL解析成有固定鍵值的數組的函數

$ua=parse_url(“”);

print_r($ua);

結果:

Array

(

[scheme] = http

[host] = hostname

[user] = username

[pass] = password

[path] = /path

[query] = arg=value

[fragment] = anchor

)

創建資料庫bbs和表test有

CREATE TABLE `test` (

`id` int(11) NOT NULL auto_increment,

`name` varchar(50) character set gb2312 NOT NULL,

`sex` varchar(2) character set gb2312 NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

然後插入十幾條測試數據即可

寫mysql資料庫連接代碼保存conn.php文件里

代碼如下

?php

$conn = @ mysql_connect(“localhost”, “root”, “”) or die(“資料庫鏈接錯誤”);

mysql_select_db(“bbs”, $conn);

mysql_query(“set names ‘GBK'”); //使用GBK中文編碼;

function htmtocode($content) {

$content = str_replace(“\n”, “br”, str_replace(” “, ” “, $content));

return $content;

}

//$content=str_replace(“‘”,”‘”,$content);

//htmlspecialchars();

?

寫分頁函數page.php

代碼如下

?php

function _PAGEFT($totle, $displaypg = 20, $url = ”) {

global $page, $firstcount, $pagenav, $_SERVER;

$GLOBALS[“displaypg”] = $displaypg;

if (!$page)

$page = 1;

if (!$url) {

$url = $_SERVER[“REQUEST_URI”];

}

//URL分析:

$parse_url = parse_url($url);

$url_query = $parse_url[“query”]; //單獨取出URL的查詢字串

if ($url_query) {

$url_query = ereg_replace(“(^|)page=$page”, “”, $url_query);

$url = str_replace($parse_url[“query”], $url_query, $url);

if ($url_query)

$url .= “page”;

else

$url .= “page”;

} else {

$url .= “?page”;

}

$lastpg = ceil($totle / $displaypg); //最後頁,也是總頁數

$page = min($lastpg, $page);

$prepg = $page -1; //上一頁

$nextpg = ($page == $lastpg ? 0 : $page +1); //下一頁

$firstcount = ($page -1) * $displaypg;

//開始分頁導航條代碼:

$pagenav = “顯示第 B” . ($totle ? ($firstcount +1) : 0) . “/B-B” . min($firstcount + $displaypg, $totle) . “/B 條記錄,共 $totle 條記錄”;

//如果只有一頁則跳出函數:

if ($lastpg = 1)

return false;

$pagenav .= ” a href=’$url=1’首頁/a “;

if ($prepg)

$pagenav .= ” a href=’$url=$prepg’前頁/a “;

else

$pagenav .= ” 前頁 “;

if ($nextpg)

$pagenav .= ” a href=’$url=$nextpg’後頁/a “;

else

$pagenav .= ” 後頁 “;

$pagenav .= ” a href=’$url=$lastpg’尾頁/a “;

//下拉跳轉列表,循環列出所有頁碼:

$pagenav .= ” 到第 select name=’topage’ size=’1′ onchange=’window.location=\”$url=\”+this.value’\n”;

for ($i = 1; $i = $lastpg; $i++) {

if ($i == $page)

$pagenav .= “option value=’$i’ selected$i/option\n”;

else

$pagenav .= “option value=’$i’$i/option\n”;

}

$pagenav .= “/select 頁,共 $lastpg 頁”;

}

include(“conn.php”);

$result=mysql_query(“SELECT * FROM `test`”);

$total=mysql_num_rows($result);

//調用pageft(),每頁顯示10條信息(使用默認的20時,可以省略此參數),使用本頁URL(默認,所以省略掉).

_PAGEFT($total,5);

echo $pagenav;

$result=mysql_query(“SELECT * FROM `test` limit $firstcount,$displaypg “);

while($row=mysql_fetch_array($result)){

echo “hrb”.$row[name].” | “.$row[sex];

}

?

調用數據和分頁list.php

?php

/**

* 愛微網

*/

include(“conn.php”);

$pagesize=5;

$url=$_SERVER[“REQUEST_URI”];

$url=parse_url($url);

$url=$url[path];

$numq=mysql_query(“SELECT * FROM `test`”);

$num = mysql_num_rows($numq);

if($_GET[page]){

$pageval=$_GET[page];

$page=($pageval-1)*$pagesize;

$page.=’,’;

}

if($num $pagesize){

if($pageval=1)$pageval=1;

echo “共 $num 條”.

” a href=$url?page=”.($pageval-1).”上一頁/a a href=$url?page=”.($pageval+1).”下一頁/a”;

}

echo $SQL=”SELECT * FROM `test` limit $page $pagesize “;

$query=mysql_query($SQL);

while($row=mysql_fetch_array($query)){

echo “hrb”.$row[name].” | “.$row[sex];

}

?

注意事項

注意分頁公式寫法你只要記住即可;

(當前頁數 – 1 )X 每頁條數 , 每頁條數;

Select * from table limit ($Page- 1) * $PageSize, $PageSize;

注意三個代碼文件在同一個目錄下;

主要是最後的list.php調用代碼要細看很有用。

PHP顯示很多資料庫信息,如何自動分頁呢?代碼

PHP代碼如下:

/*

Author:默默

Date :2006-12-03

*/

$page=isset($_GET[‘page’])?intval($_GET[‘page’]):1; //這句就是獲取page=18中的page的值,假如不存在page,那麼頁數就是1。

$num=10; //每頁顯示10條數據

$db=mysql_connect(“host”,”name”,”pass”); //創建資料庫連接

$select=mysql_select_db(“db”,$db); //選擇要操作的資料庫

/*

首先咱們要獲取資料庫中到底有多少數據,才能判斷具體要分多少頁,具體的公式就是

總數據數除以每頁顯示的條數,有餘進一。

也就是說10/3=3.3333=4 有餘數就要進一。

*/

$total=mysql_num_rows(mysql_query(“select id from table”)); //查詢數據的總數,id是資料庫中的一個自動賦值的欄位

$pagenum=ceil($total/$num); //獲得總頁數

//假如傳入的頁數參數大於總頁數,則顯示錯誤信息

If($page$pagenum || $page == 0){

Echo “Error : Can Not Found The page .”;

Exit;

}

$offset=($page-1)*$num; //獲取limit的第一個參數的值,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。

$info=mysql_query(“select name from table limit $offset,$num”); //獲取相應頁數所需要顯示的數據,name是數據里的一個欄位

While($it=mysql_fetch_array($info)){

Echo $it[‘name’].”

“;

} //顯示數據

For($i=1;$i=$pagenum;$i++){

$show=($i!=$page)?”$i”:”$i”;

Echo $show.” “;

}

/*顯示分頁信息,假如是當頁則顯示粗體的數字,其餘的頁數則為超連接,假如當前為第三頁則顯示如下

1 2 3 4 5 6

*/

?

PHP顯示上一頁[1][2][3]…..下一頁的分頁代碼

index.php?page=1

獲得頁數$_GET[“page”]==””?$page=1:$page=$_GET[“page”];// 沒有頁數就是第一頁

資料庫$sql=”select count(*) *******”

$row=mysql_fetch_array(mysql_query($sql,$link))

$pagenum=ceil($row[0]/10); //每頁10條,1.1就是2頁

index.php 首頁

$page-1是上一頁

for($i=1;$i$pagenum+1;$++) 循環輸出 1\2\3\….頁

index.php?page=1 =【1】

index.php?page=2 =【2】

$page+1是下一頁

index.php?page=$pagenum;//尾頁

求簡單的php分頁代碼一定要是簡單最好可以詳細解釋的,如果可以希望高手能把這段代碼加上分頁

body

?

/*

‘PID 頁面中的其它傳參連接

‘page 要顯示的頁碼

‘Vcount 總記錄數

‘Pnum 每頁記錄數

‘className 超連接樣式

*/

function ThePage($Pid,$page=1,$Vcount,$Pnum,$className){

$Pcount = ceil($Vcount/$Pnum);

if($page$Pcount) $page=$Pcount;

$StartPageNum=1;

while($StartPageNum+10=$page){

$StartPageNum=$StartPageNum+10;

}

$EndPageNum=$StartPageNum+9 ;

if($EndPageNum$Pcount) $EndPageNum=$Pcount;

$show = $show.”trtd colspan=’10’ bgcolor=” align=’right’ style=’padding-right:25px;padding-top:5px;’ class='”.$className.”‘”;

$show = $show.”共b”.$Pcount.”/b頁 共有b”.$Vcount.”/b記錄 第b”.$page.”/b頁 跳到第 [ “;

if($StartPageNum1) $show = $show.”a class='”.$className.”‘ href=’?”.$Pid.”page=”.($StartPageNum-1).”‘ title=’前十頁’font face=’webdings’7/font/a”;

for($go=$StartPageNum;$go=$EndPageNum;$go++){

if($go!=$page){

$show = $show.”a class='”.$className.”‘ href=’?”.$Pid.”page=”.$go.”‘”.$go.”/a”;

}else{

$show = $show.”b”.$go.”/b”;

}

$show = $show.” “;

}

if($EndPageNum$Pcount) $show = $show.”a class='”.$className.”‘ href=’?”.$Pid.”page=”.($EndPageNum+1).”‘ title=’下十頁’font face=’webdings’8/font/a”;

$show = $show.”] 頁”;

if($page!=1) $show = $show.”a class='”.$className.”‘ href=’?”.$Pid.”page=1′ 首頁/a a class='”.$className.”‘ href=’?”.$Pid.”page=”.($page-1).”‘上一頁/a”;

if($Pcount-$page!=0) $show = $show. “a class='”.$className.”‘ href=’?”.$Pid.”page=”.($page+1).”‘ 下一頁/a a class='”.$className.”‘ href=’?”.$Pid.”page=”.$Pcount.”‘尾頁/a”;

$show=$show.”/tr/td”;

return $show;

}

?

?php

//連上資料庫

mysql_connect(“localhost”,”root”,””);

//選擇資料庫

mysql_select_db(“company”);

//執行資料庫命令

mysql_query(“set names ‘utf8′”);

//關閉資料庫就是使用的最近的資料庫

echo “afont color=red已查到的記錄:/font/a”.”font color=red

共”.mysql_num_rows

($rs).”條/font”.”br”.”br”;

?

input type=”button” value=”添加員工” onclick=”location.href=’empadd.html'” /

form class=”bd”

table border=”1″ align=”left” bordercolor=”blue” background=”27[1].jpg”

td align=”center”font color=#0000FF職員編號/font/td

td align=”center”font color=#0000FF職員姓名/font/td

td align=”center”font color=#0000FF職員職位/font/td

td align=”center”font color=#0000FF職員經理/font/td

td align=”center”font color=#0000FF入職日期/font/td

td align=”center”font color=#0000FF職員工資/font/td

td align=”center”font color=#0000FF所在部門/font/td

td align=”center” width=”100″ height=”20″font color=#0000FF操作/font/td

/tr

?

//設置參數

$page = $_REQUEST[“page”];

if($page==””) $page = 1;

$Pid = “”;

$Pnum = 10;

$classname = “lwf”;

//以下不用修改

$rs = mysql_query(“select count(*) from emp e1 left join emp e2 on e1.mgr = e2.empno left join dept on e1.deptno = dept.deptno”);

$Vcount = @mysql_result($rs,0);

@mysql_free_result($rs);

$start = ($page – 1) * $Pnum;

$lastNum = $Vcount – ($page – 1) * $Pnum;

$limit = $lastNum $Pnum ? $Pnum : $lastNum;

$rs = mysql_query(“select e1.empno, e1.ename, e1.job, e1.mgr, e1.hiredate, e1.sal, e1.deptno, e2.ename as mname, dname from emp e1 left join emp e2 on e1.mgr = e2.empno left join dept on e1.deptno = dept.deptno LIMIT $start,$limit”);

while($ary = mysql_fetch_array($rs)){

?

tr bordercolor=”blue”

td width=”80″ height=”20″ align=”center”?php echo $a[“empno”];? /td

td width=”80″ height=”20″ align=”center”?php echo $a[“ename”];? /td

td width=”80″ height=”20″ align=”center”?php echo $a[“job”];? /td

td width=”80″ height=”20″ align=”center”?php echo $a[“mname”];? /td

td width=”150″ height=”20″ align=”center”?php echo $a[“hiredate”];? /td

td width=”80″ height=”20″ align=”center”?php echo $a[“sal”];? /td

td width=”80″ height=”20″ align=”center”?php echo $a[“dname”];? /td

td width=”90″ height=”20″ align=”center”

a href=”empedit.php?aa=?php echo $a[’empno’]?”修改/a |

a href=”empdel.php?aa=?php echo $a[’empno’]?”刪除/a/td

/tr

?

}

@mysql_free_result($rs);

echo ThePage($Pid,$page,$Vcount,$Pnum,$classname);

?

/table

/form

/body

PHP分頁求代碼

?php

$image[]=’23423424IMG height=408 src=”1.jpg” width=508asfsIMG height=408 src=”2.jpg” width=508′;

$image[]=’dsfaewqrIMG height=408 src=”3.jpg” width=508asdfeweIMG height=408 src=”4.jpg” width=508′;

$image[]=’vvcxvcbxcIMG height=408 src=”5.jpg” width=508dswewq’;

if(isset($_GET[‘page’]) is_numeric($_GET[‘page’])){

$page=$_GET[‘page’];

if($page0 || $page2){

$page=0;

}

}else{

$page=0;

}

if($page){

?

a herf=”./?page=?=$page-1?前一頁/a

?php

}

if($page2){

?

a herf=”./?page=?=$page+1?下一頁/a

?php

}

?

?=$image[$page]?

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/201347.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-06 11:32
下一篇 2024-12-06 11:32

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29
  • 北化教務管理系統介紹及開發代碼示例

    本文將從多個方面對北化教務管理系統進行介紹及開發代碼示例,幫助開發者更好地理解和應用該系統。 一、項目介紹 北化教務管理系統是一款針對高校學生和教職工的綜合信息管理系統。系統實現的…

    編程 2025-04-29

發表回復

登錄後才能評論