您的位置:

php分页原理及步骤,php分页思路

本文目录一览:

PHP分页问题. 望大虾开示

1.$_GET[page] 是你点击 上一页 或者 下一页 传递过来的, 当你的页面初始化的时候 也就是你没还没点击上一页 下一页 的时候 他应该是0

2.$page.=','; 这个的意思是 $page = $page . ','; 他是用来拼写SQL 语句的

拼写后 你的SQL 应该是 select * from message limit 0,5; 注意看 0 和之间 有个 逗号 代表 从结果集的第一行数据 往下取5 行

3.分页其实非常简单 比如说你有26记录 每5条为一页 26条记录能分几页啊 ? 当然是 6页了...

可是计算机不知道 你就给他一个算法

记住公式 (总的记录条数 + 每页的记录数 - 1) / 每页的记录数

咱们用公式算一下 (26 + 5 -1) / 5 = 6

然后我们看下SQL $sql="select * from message limit $page $pagesize ";

第1页的时候 是 limit 0,5

第2页的时候 是 limit 5,5

第2页的时候 是 limit 10,5

刚才也说了 limit 是从第几行数据 往下 走 几行 因为咱们是 5条数据一分也所以 第2个参数永远都不用变就是5 ,第一个参数 非常好算 每页的记录数 * (当前页数 - 1)

第1页的时候 是 5*(1-1)=0

第2页的时候 是 5*(2-1)=5

第1页的时候 是 5*(3-1)=10

还有说的就是你的代码 问题很严重 . php 5.3 版本 你这程序根本就运行不了....

$_GET['page'] 这个样写才标准. 不要以为PHP 单引号 和 双引号 没有任何差别 单引号的速度要比 双引号 快3倍. $_GET[page] 这种写法 5.3 以后直接就报错了. 建议你马上升级为5.3 或更高的版本 养成一个练好的编写代码习惯.

求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里面的数组内容进行分页显示出来?

1、前言

分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用php编写。

2、原理

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:

每页多少条记录($PageSize)?

当前是第几页($CurrentPageID)?

现在只要再给我一个结果集,我就可以显示某段特定的结果出来。

至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。

以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。

前10条记录:select * from table limit 0,10

第11至20条记录:select * from table limit 10,10

第21至30条记录:select * from table limit 20,10

……

这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:

select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize

拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。以下我将用具体代码加以说明。

3、简单代码

请详细阅读以下代码,自己调试运行一次,最好把它修改一次,加上自己的功能,比如搜索等等。

?php

// 建立数据库连接

$link = mysql_connect("localhost", "mysql_user", "mysql_password")

or die("Could not connect: " . mysql_error());

// 获取当前页数

if( isset($_GET['page']) ){

$page = intval( $_GET['page'] );

}

else{

$page = 1;

}

// 每页数量

$PageSize = 10;

// 获取总数据量

$sql = "select count(*) as amount from table";

$result = mysql_query($sql);

$row = mysql_fetch_row($result);

$amount = $row['amount'];

// 记算总共有多少页

if( $amount ){

if( $amount $page_size ) //如果总数据量小于$PageSize,那么只有一页

if( $amount % $page_size ){ //取总数据量除以每页数的余数

$page_count = (int)($amount / $page_size) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一

}else{

$page_count = $amount / $page_size; //如果没有余数,则页数等于总数据量除以每页数的结果

}

}

else{

$page_count = 0;

}

// 翻页链接

$page_string = '';

if( $page == 1 ){

$page_string .= '第一页|上一页|';

}

else{

$page_string .= 'a href="/?page=1";第一页/a|a href="/?page='."($page-1).'上一页/a|';

}

if( ($page == $page_count) || ($page_count == 0) ){

$page_string .= '下一页|尾页';

}

else{

$page_string .= 'a href="/?page='."($page+1).'下一页/a|a href="/?page='."$page_count.'尾页/a';

}

// 获取数据,以二维数组格式返回结果

if( $amount ){

$sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size";

$result = mysql_query($sql);

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

$rowset[] = $row;

}

}else{

$rowset = array();

}

// 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果

?

4、OO风格代码

以下代码中的数据库连接是使用的pear db类进行处理

?php

// FileName: Pager.class.php

// 分页类,这个类仅仅用于处理数据结构,不负责处理显示的工作

Class Pager

{

var $PageSize; //每页的数量

var $CurrentPageID; //当前的页数

var $NextPageID; //下一页

var $PreviousPageID; //上一页

var $numPages; //总页数

var $numItems; //总记录数

var $isFirstPage; //是否第一页

var $isLastPage; //是否最后一页

var $sql; //sql查询语句

function Pager($option)

{

global $db;

$this-_setOptions($option);

// 总条数

if ( !isset($this-numItems) )

{

$res = $db-query($this-sql);

$this-numItems = $res-numRows();

}

// 总页数

if ( $this-numItems 0 )

{

if ( $this-numItems $this-PageSize )

if ( $this-numItems % $this-PageSize )

{

$this-numPages= (int)($this-numItems / $this-PageSize) + 1;

}

else

{

$this-numPages = $this-numItems / $this-PageSize;

}

}

else

{

$this-numPages = 0;

}

switch ( $this-CurrentPageID )

{

case $this-numPages == 1:

$this-isFirstPage = true;

$this-isLastPage = true;

break;

case 1:

$this-isFirstPage = true;

$this-isLastPage = false;

break;

case $this-numPages:

$this-isFirstPage = false;

$this-isLastPage = true;

break;

default:

$this-isFirstPage = false;

$this-isLastPage = false;

}

if ( $this-numPages 1 )

{

if ( !$this-isLastPage )

if ( !$this-isFirstPage )

}

return true;

}

/***

*

* 返回结果集的数据库连接

* 在结果集比较大的时候可以直接使用这个方法获得数据库连接,然后在类之外遍历,这样开销较小

* 如果结果集不是很大,可以直接使用getPageData的方式获取二维数组格式的结果

* getPageData方法也是调用本方法来获取结果的

*

***/

function getDataLink()

{

if ( $this-numItems )

{

global $db;

$PageID = $this-CurrentPageID;

$from = ($PageID - 1)*$this-PageSize;

$count = $this-PageSize;

$link = $db-limitQuery($this-sql, $from, $count); //使用Pear DB::limitQuery方法保证数据库兼容性

return $link;

}

else

{

return false;

}

}

/***

*

* 以二维数组的格式返回结果集

*

***/

function getPageData()

{

if ( $this-numItems )

{

if ( $res = $this-getDataLink() )

{

if ( $res-numRows() )

{

while ( $row = $res-fetchRow() )

{

$result[] = $row;

}

}

else

{

$result = array();

}

return $result;

}

else

{

return false;

}

}

else

{

return false;

}

}

function _setOptions($option)

{

$allow_options = array(

'PageSize',

'CurrentPageID',

'sql',

'numItems'

);

foreach ( $option as $key = $value )

{

if ( in_array($key, $allow_options) ($value != null) )

{

$this-$key = $value;

}

}

return true;

}

}

?

?php

// FileName: test_pager.php

// 这是一段简单的示例代码,前边省略了使用pear db类建立数据库连接的代码

require "Pager.class.php";

if ( isset($_GET['page']) )

{

$page = (int)$_GET['page'];

}

else

{

$page = 1;

}

$sql = "select * from table order by id";

$pager_option = array(

"sql" = $sql,

"PageSize" = 10,

"CurrentPageID" = $page

);

if ( isset($_GET['numItems']) )

{

$pager_option['numItems'] = (int)$_GET['numItems'];

}

$pager = @new Pager($pager_option);

$data = $pager-getPageData();

if ( $pager-isFirstPage )

{

$turnover = "首页|上一页|";

}

else

{

$turnover = "a href='?page=1numItems=".$pager-numItems."'首页/a|a href="/?page=".$pager-PreviousPageID."numItems=".$pager-numItems."'上一页/a|";

}

if ( $pager-isLastPage )

{

$turnover .= "下一页|尾页";

}

else

{

$turnover .= "a href="/?page=".$pager-NextPageID."numItems=".$pager-numItems."'下一页/a|a href="/?page=".$pager-numPages."numItems=".$pager-numItems."'尾页/a";

}

?

需要说明的地方有两个:

这个类仅仅处理数据,并不负责处理显示,因为我觉得将数据的处理和结果的显示都放到一个类里边实在是有些勉强。显示的时候情况和要求多变,不如自己根据类给出的结果处理,更好的方法是根据这个Pager类继承一个自己的子类来显示不同的分页,比如显示用户分页列表可以:

?php

Class MemberPager extends Pager

{

function showMemberList()

{

global $db;

$data = $this-getPageData();

// 显示结果的代码

// ......

}

}

/// 调用

if ( isset($_GET['page']) )

{

$page = (int)$_GET['page'];

}

else

{

$page = 1;

}

$sql = "select * from members order by id";

$pager_option = array(

"sql" = $sql,

"PageSize" = 10,

"CurrentPageID" = $page

);

if ( isset($_GET['numItems']) )

{

$pager_option['numItems'] = (int)$_GET['numItems'];

}

$pager = @new MemberPager($pager_option);

$pager-showMemberList();

?

第二个需要说明的地方就是不同数据库的兼容性,在不同的数据库里截获一段结果的写法是不一样的。

mysql: select * from table limit offset, rows

pgsql: select * from table limit m offset n

......

所以要在类里边获取结果的时候需要使用pear db类的limitQuery方法。

ok,写完收功,希望花时间看完这些文字的你不觉得是浪费了时间。

回答者

另外,虚机团上产品团购,超级便宜

PHP分页问题!

分页没楼上说的那么复杂,你仔细看看你的打印分页的地方,是在/tr与/table之间,你应该放在一个单元格里。这样他才能显示。

/*

分页步骤:

1.给出每页的记录条数

2.求出总页数(先得到总条数,再求总页数)

3.获得当前页的id值

4.得到每个页面的结果集

5.循环取出

*/

?php

$id=$_GET["id"];

if($id=="")

{

$id=1;

}

$paginal=10;

$sql="select * from contents where title=$id";

$rs=mysql_query($sql);

$sum=mysql_num_rows($rs); //信息的总数

$pagination=($sum-1)/$paginal+1; //信息的总页数

$pagination=(int)$pagination; //总页数取整

$pageno=$_GET["pageno"]; //当前页数

if($pageno=="" || $pageno1)

{

$pageno=1;

}

if($pageno$pagination)

{

$pageno=$pagination;

}

$startno=($pageno-1)*$paginal; //当前结果集(当前查看第几条)

$sql="select * from contents where title=$id order by id desc limit $startno,$paginal";

$rs=mysql_query($sql);

?

table width="780" border="1" bordercolor="#000000" align="center"

tr

td编号/td

td内容/td

td作者/td

/tr

?php

while($rows=mysql_fetch_assoc($rs))

{

?

tr

td?php echo $rows["Id"]?/td

td?php echo $rows["Contents"]?/td

td?php echo $rows["Author"]?/td

/tr

?php

}

?

/table

请问哪位大侠能给我解释下PHP分页的原理么,麻烦附上代码加注释,我大部分能看懂,但是有些模糊,谢谢

?php

/*

$recordcount 总数据量

$pernumber 每页显示记录数

$pagelong 显示页码的长度

*/

function showpage($pagecount,$pagelong=5){

if(!isset($_GET['page'])){

$_GET['page']='';

}

if(!isset($p)){

$p='';

}

if($_GET['page']1||$_GET['page']==""){

$_GET['page']=1;

}

//总页数小于等于页码长度

if($pagecount=$pagelong){

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

if($i==$_GET['page']){

$p=$p." span$i/span ";

}

else{

$p =$p." a href='".get_url($i)."' hidefocus$i/a ";

}

}

}

//总页数大于页码长度

else{

//循环页码数

for($i=$_GET['page'];$i=$_GET['page']+$pagelong-1;$i++){

//判断是否在当前页

if($i==$_GET['page']$_GET['page']!=1){

//输出 当前页前面的

for($i=$_GET['page']-5;$i$_GET['page'];$i++){

if($i=1){

$p=$p." a href='".get_url($i)."' hidefocus$i/a ";

}

}

$p=$p." span$i/span ";

}

else{

if($i==$_GET['page']){

$p =$p." span$i/span ";

}

else{

$p =$p." a href='".get_url($i)."' hidefocus$i/a ";

}

}

//总页数-当前页码 小于 页码长度

if(($pagecount-$_GET['page'])=$pagelong){

for($i=$_GET['page']+1;$i=$pagecount;$i++){

$p=$p." a href='".get_url($i)."' hidefocus$i/a ";

}

break;

}

//当前页大于等于总页数

if($_GET['page']=$pagecount){

break;

}

}

}

//当前页不是首页

if($_GET['page']!="1"){

$a=$_GET['page']-1;

//if($_GET['page']4){

$p = " a href='".get_url(1)."' hidefocus/a a href='".get_url($a)."' hidefocus/a ".$p;

//}

}

//当前页不是尾页

if($_GET['page']$pagecount){

$a=$_GET['page']+1;

if($_GET['page']$pagecount-2){

$p = $p." a href='".get_url($a)."' hidefocus/a a href='".get_url($pagecount)."' hidefocus/a ";

}

else{

$p = $p." a href='".get_url($a)."' hidefocus/a ";

}

}

return $p;

}

//获取分页的URL

function get_url($page){

//默认的

if(empty($_SERVER['QUERY_STRING'])){ //empty变量是否为空 $_SERVER['QUERY_STRING'] URL中第一个问号?之后的内容

return $_SERVER['PHP_SELF'].'?page='.$page; //$_SERVER['PHP_SELF'] 当前正在执行脚本的文件名

}

//有分页的

elseif(strpos($_SERVER['QUERY_STRING'],'page')!== false){ //strpos获取字符串page首次出现位置(判断是否有参数page)

//有参数

if(strpos($_SERVER['QUERY_STRING'], '') !== false){ //有多个参数

$u = explode('page', $_SERVER['QUERY_STRING']);

return $_SERVER['PHP_SELF'].'?'.$u[0].'page='.$page;

}

//无参数的

else{

return $_SERVER['PHP_SELF'] . '?page=' . $page;

}

}

//有参数,无分页的

else{

return $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'page='.$page;

}

}

php分页功能怎么实现

php本身是没有分页概念的,分页是URL传参,然后通过mysql查询语句到数据库获取数据,然后实现的分页,url上的参数,通过PHP的$_GET都是可以获取到的。

现在市面上的PHP框架基本都有PHP分页类,参照文档直接调用就好了,如果想看实现过程,可以去下载一个TP框架,然后打开里面的分页类查看里面的源代码。