应用在smarty中 分页类





class  pages
{
 var $sum;
//数据库中的记录数
 var $p;//当前页码
 var $total;//共有多少页
 var $pagesize;//每页的记录数
 var $pageflay;//每页显示10个页码数 
 var $db; //数据库对象
 var $pagenav;//所要用的1 2 3 4 5 ...
 var $smarty;//smarty  
 function pages($smarty, $db, $pagesize=20, $pageflay=10)
 
{//构造函数 
  $this->smarty=$smarty;
  $
this->db=$db;
  $
this->pagesize=$pagesize;//设置每页显示条数
  $this->pageflay=$pageflay;//设置下表页码个数   
  $sql = "SELECT * FROM tablename";
  $
this->db->execute_sql($sql);
  $
this->sum=$this->db->m_count;//得到行数    
  if($this->sum % $this->pagesize == 0)//计算总页数,正好整除
  {
   $
this->total=(int)( $this->sum/$this->pagesize );
  }

  
else//计算总页数,非整除情况
  {
   $
this->total=(int)( $this->sum/$this->pagesize )+1;
  }

 }
 
 function page_goto()
 
{//得到当前页
  if(isset($_GET['page']))//如果当前页不为空
  {
   $
this->p=(int)$_GET['page'];
  }

  
else//缺省为第一页
  {
   $
this->p=1;
  }
  
  $start
=$this->pagesize*($this->p-1);//开始的记录
  $this->pagenav="";
  $beginpage
=floor(($this->p-1)/$this->pageflay)*$this->pageflay+1;
  $endpage
=$beginpage+$this->pageflay;
  $prepage
=$beginpage-$this->pageflay;
  
if($beginpage>1) $this->pagenav.= "<a href='?page=".$prepage."'>... </a>";
  
for($i=$beginpage;$i<$endpage;$i++)
  
{
   
if($i>$this->total) break;
   
if($i==$this->p)
   $
this->pagenav.="<font color='red'>{$i}</font> ";
   
else
   
{
    $
this->pagenav.= "<a href='?page={$i}'>$i</a> ";
   }

  }

  
if($endpage <= $this->total) $this->pagenav.= "<a href='?page=$endpage'>... </a>";
  $
this->i=($this->p-1)*$this->pagesize+1;
  $sql
="SELECT * FROM tablename LIMIT $this->pagesize OFFSET $start";
  $
this->table=$this->db->execute_sql($sql,TABLE);
 }

}
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值