php实现分页

IndexController.class.php文件可以实现分页效果;可以根据实际需要进行修改;

//IndexController.class.php
<?php 
header("content-type:text/html;charset=utf-8");
//定义最终的分页类
final class Pager
{	
	//私有的成员属性
	private $records;  //总记录数
	private $pages;    //总页数
	private $pagesize; //每页显示记录数
	private $page;     //当前页
	private $url;      //链接地址 ?c=Admin&a=index&page=5
	private $first;    //首页
	private $last;     //尾页
	private $prev;     //上一页
	private $next;     //下一页

	//构造方法
	public function __construct($records,$pagesize,$page,$params=array())
	{
		$this->records   = $records;  
		$this->pagesize  = $pagesize; 
		$this->pages     = $this->getPages();    
		$this->page      = $page;     
		$this->url       = $this->getUrl($params);      
		$this->first     = $this->getFirst();    
		$this->last      = $this->getLast();     
		$this->prev      = $this->getPrev();     
		$this->next	     = $this->getNext();     
	}

	//获取链接地址
	private function getUrl($params=array()) //获取a,p,c参数
	{
		foreach ($params as $key=>$value)
		{
			$arr[] = "$key=$value";
		}
		return "http://www.php9.com/?".implode("&", $arr)."&page= "; 
		//拼接字符串?&c=Admin&a=index&page=5
	}

	//获取总页数
	private function getPages()
	{	
		return ceil($this->records/$this->pagesize);
	}

	//获取首页
	private function getFirst()
	{
		if ($this->page==1) {
			return"[首页]";
		}else{
			return "[<a href='{$this->url}1'>首页</a>]";
		}
	}

	//获取尾页
	private function getLast()
	{
		if ($this->page==$this->pages) {
			return"[尾页]";
		}else{
			return "[<a href='{$this->url}{$this->pages}'>尾页</a>]";
		}
	}
	//获取上一页
	private function getPrev()
	{
		if ($this->page==1) 
		{
			return "[上一页]";
		}else
		{
			return "[<a href='{$this->url}".($this->page-1)."'>上一页</a>]";
		}
	}

	//获取下一页
	private function getNext()
	{
		if ($this->page==$this->pages) {
			return"[下一页]";
		}else{
			return "[<a href='{$this->url}".($this->page+1)."'>下一页</a>]";
		}
	}

	//公共的分页方法
	public function showPage()
	{
		if ($this->pages>1) {
			$str = "共有{$this->records}条记录,每页显示{$this->pagesize}条记录. ";
			$str .= "共有{$this->page}/{$this->pages}页";
			$str .= "{$this->first} {$this->prev} {$this->next}  {$this->last}";
			return $str;
		}else{
			return "共有{$this->records}条记录";
		}
	}
}


//调用分页方法的测试代码		
//构建分页的参数
$pagesize = 2;
$page     = isset($_GET['page'])?$_GET['page'] :1 ;
$startrow = ($page-1)*$pagesize;
$records  = 20;
$params   = array('c'=>'Index','a'=>'index');
//创建分页类对象
$pageObj = new Pager($records,$pagesize,$page,$params);

//调用分页类方法
$pageStr = $pageObj->showPage();
echo $pageStr;


效果图如下:
效果图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值