php smarty 分页类,PHP结合Smarty分页类

class show_Pager

{

protected  $_total;                          //记录总数

protected  $pagesize;                       //每一页显示的记录数

public     $pages;                         //总页数

protected  $_cur_page;                    //当前页码

protected  $offset;                      //记录偏移量

protected  $pager_Links;                //url连接

protected  $pernum = 5;                //页码偏移量,这里可随意更改

public function __construct($total,$pagesize,$_cur_page)

{

$this->_total=$total;

$this->pagesize=$pagesize;

$this->_offset();

$this->_pager();

$this->cur_page($_cur_page);

$this->link();

}

public  function _pager()//计算总页数

{

return $this->pages = ceil($this->_total/$this->pagesize);

}

public function cur_page($_cur_page) //设置页数

{

if (isset($_cur_page))

{

$this->_cur_page=intval($_cur_page);

}

else

{

$this->_cur_page=1; //设置为第一页

}

return  $this->_cur_page;

}

//数据库记录偏移量

public function _offset()

{

return $this->offset=$this->pagesize*($this->_cur_page-1);

}

//html连接的标签

public function link()

{

if ($this->_cur_page == 1 && $this->pages>1)

{

//第一页

$this->pager_Links = "首 页 | 上一页 | _cur_page+1).">下一页 | pages>尾 页";

}

elseif($this->_cur_page == $this->pages && $this->pages>1)

{

//最后一页

$this->pager_Links = "首 页 | _cur_page-1).">上一页 | 下一页 | 尾 页";

}

elseif ($this->_cur_page > 1 && $this->_cur_page <= $this->pages)

{

//中间

$this->pager_Links = "首 页 | _cur_page-1).">上一页 | _cur_page+1).">下一页 | pages>尾 页";

}

return $this->pager_Links;

}

//html数字连接的标签

public function num_link()

{

$setpage  = $this->_cur_page ? ceil($this->_cur_page/$this->pernum) : 1;

$pagenum   = ($this->pages > $this->pernum) ? $this->pernum : $this->pages;

if ($this->_total  <= $this->pagesize) {

$text  = '只有一页';

} else {

$text = '页数:'.$this->pages.' '.$this->pagesize.'个/页 ';

if ($this->_cur_page > 1) {

$text .= '[1]..';

}

if ($setpage > 1) {

$lastsetid = ($setpage-1)*$this->pernum;

$text .= '[<';

}

if ($this->_cur_page > 1) {

$pre = $this->_cur_page-1;

$text .= '[';

}

$i = ($setpage-1)*$this->pernum;

for($j=$i; $jpages; $j++) {

$newpage = $j+1;

if ($this->_cur_page == $j+1) {

$text .= '['.($j+1).']';

} else {

$text .= '['.($j+1).']';

}

}

if ($this->_cur_page < $this->pages){

$next = $this->_cur_page+1;

$text .= '[>]';

}

if ($setpage < $this->_total) {

$nextpre = $setpage*($this->pernum+1);

if($nextprepages)

$text .= '[>>]';

}

if ($this->_cur_page < $this->pages) {

$text .= '..pages.'>['.$this->pages.']';

}

}

return $text;

}

}

//$conn,$tpl 全局变量 传入 $table是数据表 $where 是条件语句 $order 是ADSC之类的,$pager_size是每页显示数,$pager是当前页

//返回后在摸板里面可以直接使用

数字标签用

class my_Pager extends show_Pager

{

function __construct($table,$where,$order,$pager_size,$pager)

{

global $conn;

global $tpl;

$sql="SELECT * FROM `$table` $where order by $order desc";

$nums=$conn->Execute($sql)->RecordCount();

$pager=new show_Pager($nums,$pager_size,$pager);

$show=$conn->SelectLimit($sql,$pager_size,$pager->_offset())->GetAll();

$tpl->assign("numlink",$pager->num_link());//数字标签

$tpl->assign("show",$show);//显示帖子

}

}

?>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值