php數字分頁代碼,php分頁功能怎麼實現

本文目錄一覽:

php分頁代碼 怎麼寫

 Web開發是今後分散式程式開發的主流,通常的web開發都要涉及到與資料庫打交道,客戶端從伺服器端讀取通常都是以分頁的形式來顯示,一頁一頁的閱讀起來既方便又美觀。所以說寫分頁程序是web開發的一個重要組成部分,在這裡,我們共同來研究分頁程序的編寫。

一、分頁程序的原理

分頁程序有兩個非常重要的參數:每頁顯示幾條記錄($pagesize)和當前是第幾頁($page)。有了這兩個參數就可以很方便的寫出分頁程序,我們以MySql資料庫作為數據源,在mysql里如果要想取出表內某段特定內容可以使用的 T-SQL語句:select * from table limit offset,rows來實現。這裡的offset是記錄偏移量,它的計算方法是offset=$pagesize*($page-1),rows是要顯示的記錄條數,這裡就是$page。也就是說select * from table limit 10,10這條語句的意思是取出表裡從第11條記錄開始的20條記錄。

二、主要代碼解析

$pagesize=10; //設置每一頁顯示的記錄數

$conn=mysql_connect(“localhost”,”root”,””); //連接資料庫

$rs=mysql_query(“select count(*) from tb_product”,$conn); //取得記錄總數$rs

$myrow = mysql_fetch_array($rs);

$numrows=$myrow[0];

//計算總頁數

$pages=intval($numrows/$pagesize);

//判斷頁數設置

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

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

}

else{

 $page=1; //否則,設置為第一頁

}

三、創建用例用表myTable

create table myTable(id int NOT NULL auto_increment,news_title varchar(50),news_cont text,add_time datetime,PRIMARY KEY(id))

四、完整代碼

<html>

<head>

<title>php分頁示例</title>

<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>

</head>

<body>

<?php

 $conn=mysql_connect(“localhost”,”root”,””);

 //設定每一頁顯示的記錄數

 $pagesize=1;

 mysql_select_db(“mydata”,$conn);

 //取得記錄總數$rs,計算總頁數用

 $rs=mysql_query(“select count(*) from tb_product”,$conn);

 $myrow = mysql_fetch_array($rs);

 $numrows=$myrow[0];

 //計算總頁數

 $pages=intval($numrows/$pagesize);

 if ($numrows%$pagesize)

$pages++;

 //設置頁數

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

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

 }

 else{

//設置為第一頁

$page=1;

 }

 //計算記錄偏移量

 $offset=$pagesize*($page – 1);

 //讀取指定記錄數

 $rs=mysql_query(“select * from myTable order by id desc limit $offset,$pagesize”,$conn);

 if ($myrow = mysql_fetch_array($rs))

 {

$i=0;

?>

<table border=”0″ width=”80%”>

<tr>

 <td width=”50%” bgcolor=”#E0E0E0″>

<p align=”center”>標題</td>

<td width=”50%” bgcolor=”#E0E0E0″>

<p align=”center”>發布時間</td>

</tr>

<?php

 do {

$i++;

?>

<tr>

 <td width=”50%”><?=$myrow[“news_title”]?></td>

 <td width=”50%”><?=$myrow[“news_cont”]?></td>

</tr>

 <?php

 }

 while ($myrow = mysql_fetch_array($rs));

echo “</table>”;

}

echo “<div align=’center’>共有”.$pages.”頁(“.$page.”/”.$pages.”)”;

for ($i=1;$i< $page;$i++)

 echo “<a href=’fenye.php?page=”.$i.”‘>[“.$i .”]</a> “;

 echo “[“.$page.”]”;

 for ($i=$page+1;$i<=$pages;$i++)

echo “<a href=’fenye.php?page=”.$i.”‘>[“.$i .”]</a> “;

echo “</div>”;

 ?>

</body>

</html>

五、總結

本例代碼在windows2000 server+php4.4.0+mysql5.0.16上運行正常。該示例顯示的分頁格式是[1][2][3]…這樣形式。假如想顯示成「首頁 上一頁 下一頁 尾頁」這樣形式,請加入以下代碼:

$first=1;

$prev=$page-1;

$next=$page+1;

$last=$pages;

if ($page > 1)

{

 echo “<a href=’fenye.php?page=”.$first.”‘>首頁</a> “;

 echo “<a href=’fenye.php?page=”.$prev.”‘>上一頁</a> “;

}

if ($page < $pages)

{

 echo “<a href=’fenye.php?page=”.$next.”‘>下一頁</a>

 echo “<a href=’fenye.php?page=”.$last.”‘>尾頁</a> “;

}

其實,寫分頁顯示代碼是很簡單的,只要掌握了它的工作原理。希望這篇文章能夠帶給那些需要這方面程序web程序員的幫助。

PHP分頁顯示最簡單代碼

簡單寫法:

?php

include

(“./config/conn.php”);

$sql=”select

*

from

ly

order

by

id

desc”;

$result=mysql_query($sql);

$num=mysql_num_rows($result);

//統計行數

$pages=ceil($num/5);

//總頁數

$page=$_GET[‘page’];

//獲得page,如果沒有設置或者page=0,把$page=1;

if(!isset($page)

||

$page==0)

$page=1;

$start=($page-1)*5;

$sql=”select

*

from

ly

order

by

id

desc

limit

$start,5″;

mysql_query($sql);

if($sumpage!=0)

{

if($page!=1)

{

echo

“a

href=$PHP_SELF?page=1首頁/a\t”;

}else

{

echo

“首頁\t”;

}

if($page1)

{

echo

“a

href=$PHP_SELF?page=”.($page-1).”上一頁/a\t”;

}else

{

echo

“上一頁\t”;

}

if($page$pages)

{

echo

“a

href=$PHP_SELF?page=”.($page+1).”下一頁/a\t”;

}else

{

echo

“下一頁\t”;

}

if($page!=$pages)

{

echo

“a

href=$PHP_SELF?page=”.$pages.”尾頁/a\t”;

}else

{

echo

“尾頁\t”;

}

}else

{

echo

“目前沒有記錄!!”;

}

求PHP各種分頁方法,各位大仙有的別藏了~~

PHP分頁方法:

第一步創建一個類 subPages.php?php

class SubPages{

private $each_disNums;//每頁顯示的條目數

private $nums;//總條目數

private $current_page;//當前被選中的頁

private $sub_pages;//每次顯示的頁數

private $pageNums;//總頁數

private $page_array = array();//用來構造分頁的數組

private $subPage_link;//每個分頁的鏈接

private $subPage_type;//顯示分頁的類型

//__construct是SubPages的構造函數,用來在創建類的時候自動運行. //@$each_disNums 每頁顯示的條目數 // @nums 總條目數 // @current_num 當前被選中的頁 //@sub_pages 每次顯示的頁數 // @subPage_link 每個分頁的鏈接 //@subPage_type 顯示分頁的類型 //當@subPage_type=1的時候為普通分頁模式 example: 共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁] //當@subPage_type=2的時候為經典分頁樣式 example: 當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]

function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){

//intval通過使用特定的進位轉換(默認是十進位),返回變數 var 的 integer 數值

$this-each_disNums=intval($each_disNums);

$this-nums=intval($nums);

if(!$current_page){

$this-current_page=1;

}else{

$this-current_page=intval($current_page);

}

$this-sub_pages=intval($sub_pages);

$this-pageNums=ceil($nums/$each_disNums);

$this-subPage_link=$subPage_link;

$this-show_SubPages($subPage_type);

//echo $this-pageNums.”–“.$this-sub_pages;

}

//__destruct析構函數,當類不在使用的時候調用,該函數用來釋放資源

function __destruct(){

unset($each_disNums);

unset($nums);

unset($current_page);

unset($sub_pages);

unset($pageNums);

unset($page_array);

unset($subPage_link);

unset($subPage_type);

}

//show_SubPages函數用在構造函數裡面。而且用來判斷顯示什麼樣子的分頁

function show_SubPages($subPage_type){

if($subPage_type == 1){

$this-subPageCss1();

}elseif ($subPage_type == 2){

$this-subPageCss2();

}

}

//用來給建立分頁的數組初始化的函數。

function initArray(){

for($i=0;$i$this-sub_pages;$i++){

$this-page_array[$i]=$i;

}

return $this-page_array;

}

//construct_num_Page該函數使用來構造顯示的條目

// 即使:[1][2][3][4][5][6][7][8][9][10]

function construct_num_Page(){

if($this-pageNums $this-sub_pages){

$current_array=array();

for($i=0;$i$this-pageNums;$i++){

$current_array[$i]=$i+1;

}

}else{

$current_array=$this-initArray();

if($this-current_page = 3){

for($i=0;$icount($current_array);$i++){

$current_array[$i]=$i+1;

}

}elseif ($this-current_page = $this-pageNums $this-current_page $this-pageNums – $this-sub_pages +1 ){

for($i=0;$icount($current_array);$i++){

$current_array[$i]=($this-pageNums)-($this-sub_pages)+1+$i;

}

}else{

for($i=0;$icount($current_array);$i++){

$current_array[$i]=$this-current_page-2+$i;

}

}

}

return $current_array;

}

//構造普通模式的分頁

//共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁]

function subPageCss1(){

$subPageCss1Str=””;

$subPageCss1Str.=”共”.$this-nums.”條記錄,”;

$subPageCss1Str.=”每頁顯示”.$this-each_disNums.”條,”;

$subPageCss1Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;

if($this-current_page 1){

$firstPageUrl=$this-subPage_link.”1″;

$prewPageUrl=$this-subPage_link.($this-current_page-1);

$subPageCss1Str.=”[a href=’$firstPageUrl’首頁/a] “;

$subPageCss1Str.=”[a href=’$prewPageUrl’上一頁/a] “;

}else {

$subPageCss1Str.=”[首頁] “;

$subPageCss1Str.=”[上一頁] “;

}

if($this-current_page $this-pageNums){

$lastPageUrl=$this-subPage_link.$this-pageNums;

$nextPageUrl=$this-subPage_link.($this-current_page+1);

$subPageCss1Str.=” [a href=’$nextPageUrl’下一頁/a] “;

$subPageCss1Str.=”[a href=’$lastPageUrl’尾頁/a] “;

}else {

$subPageCss1Str.=”[下一頁] “;

$subPageCss1Str.=”[尾頁] “;

}

echo $subPageCss1Str;

}

//構造經典模式的分頁

//當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]

function subPageCss2(){

$subPageCss2Str=””;

$subPageCss2Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;

if($this-current_page 1){

$firstPageUrl=$this-subPage_link.”1″;

$prewPageUrl=$this-subPage_link.($this-current_page-1);

$subPageCss2Str.=”[a href=’$firstPageUrl’首頁/a] “;

$subPageCss2Str.=”[a href=’$prewPageUrl’上一頁/a] “;

}else {

$subPageCss2Str.=”[首頁] “;

$subPageCss2Str.=”[上一頁] “;

}

$a=$this-construct_num_Page();

for($i=0;$icount($a);$i++){

$s=$a[$i];

if($s == $this-current_page ){

$subPageCss2Str.=”[span style=’color:red;font-weight:bold;'”.$s.”/span]”;

}else{

$url=$this-subPage_link.$s;

$subPageCss2Str.=”[a href=’$url'”.$s.”/a]”;

}

}

if($this-current_page $this-pageNums){

$lastPageUrl=$this-subPage_link.$this-pageNums;

$nextPageUrl=$this-subPage_link.($this-current_page+1);

$subPageCss2Str.=” [a href=’$nextPageUrl’下一頁/a] “;

$subPageCss2Str.=”[a href=’$lastPageUrl’尾頁/a] “;

}else {

$subPageCss2Str.=”[下一頁] “;

$subPageCss2Str.=”[尾頁] “;

}

echo $subPageCss2Str;

}

}

?要做分頁的頁面?php//每頁顯示的條數

$page_size=2;

//得到當前是第幾頁

$pageCurrent=$_GET[“p”];

$offet =($pageCurrent-1)*$page_size;

//建立資料庫連接

$conn = mysql_connect(“地址”,”用戶名”,”密碼”) or die(“”.mysql_error());

//設置字符集

mysql_query(“set names gbk”);

//設置資料庫

mysql_select_db(“資料庫名”,$conn) or die(“”.mysql_error());

if($conn) { include (“query.html”);

//查詢會員信息//注:這裡的sql查詢了兩遍.第一遍是確定查詢出來的總數據條數

$query_sql = “SELECT * FROM user_info_t order by id desc”;//第二遍是根據需要即$page_size來確定每次查出的條數

$query_sql_sec= “SELECT * FROM user_info_t order by id desc limit $offet,$page_size”;

//執行查詢語句 返回一個結果集

$query_res = mysql_query($query_sql,$conn);

$query_res_sec = mysql_query($query_sql_sec,$conn);

//查詢列數

//$query_cols = mysql_num_fields($query_res);

//查詢行數

$query_num =mysql_num_rows($query_res);

//返回根據從結果集取得的行生成的數組,如果沒有更多行

echo “table border=’0′ cellpadding=’1′ cellspacing=’2′ width=’100%’ bgcolor=’#FFFFFF'”;

while($query_row = mysql_fetch_array($query_res_sec)) {

echo “tr”;

for ($i=0;$i$query_cols;$i++) {

echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”.$query_row[$i].”/td\n”;

}

echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”;

//echo “input type=’button’ class=’button’ id=’modify_record’ name=’modify_record’ value=’修改’ /”;

echo”button onClick=\”submit(location.href=’../modify/modify.php?rec_id=$query_row[0]’);\”class=\”button\”;修改/button”;

//echo “ahref=’../delete/delete.php?rec_id=$query_row[0]’onClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return true;else returnfalse;\”img src=\”../image/delete.gif\” align=\”absmiddle\”/刪除/a”;

echo “buttononClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return submit(location.href=’../delete/delete.php?rec_id=$query_row[0]’);else return false;\”class=\”button\”;刪除/button”;

echo “/td”;

echo “/tr”;

}

//echo “/form”;

echo “/table”;

require_once(“../common/subPages.php”);//總條目數為資料庫中查詢出的數據條數

$nums=$query_num;

//每次顯示的頁數

$sub_pages=10; //if(!$pageCurrent) $pageCurrent=1;

//調用類SubPages 傳的參數為:每頁顯示條數/當前第幾頁/每次顯示的頁數/分頁模式

$subPage=new SubPages($page_size,$nums,$pageCurrent,$sub_pages,”query.php?p=”,1);

}else{

die(‘資料庫連接異常: ‘.mysql_error());

}

//斷開資料庫連接

if ($conn)

{

mysql_close($conn);

}

?

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傳值*/

?

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

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

相關推薦

  • Python周杰倫代碼用法介紹

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

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

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

    編程 2025-04-29
  • Python循環符合要求數字求和

    這篇文章將詳細介紹如何通過Python循環符合要求數字求和。如果你想用Python求和但又不想手動輸入數字,那麼本文將是一個不錯的選擇。 一、使用while循環實現求和 sum =…

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

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

    編程 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

發表回復

登錄後才能評論