代码说

code is poetry

代码说    
碎碎念:什么时候稚真的情感披上了虚伪的外衣,看不到诚实的面孔,每个人都带着面具。  换一换

简洁实用的分页类

作者:coderzheng 发布于:2015-8-10 17:20 Monday 分类:php  阅读模式

<?php
class PAGINATION {
     public $pageCount; //每页显示记录数
     public $showCount; // 页面显示页码个数
     public $total; //总记录数
     public $pageNum; //总页数
     public $uri; //文件访问地址

     public function __construct($total, $pageCount, $showCount, $pageNum=0) {
          $this->total = $total;
          $this->pageCount = $pageCount;
          $this->showCount = $showCount;
          $this->pageNum = $pageNum;
          $this->uri = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
     }

     public function getPageStr($np, $queryString='') {
          $page = $np ? $np : 1; // 当前页码, np是从页面地址栏通过GET传递过来的变量
          if ($this->pageNum == 0) {
               $this->pageNum = ceil($this->total/$this->pageCount);
          }
          $page = ($page>$this->pageNum)? 1: $page;
          $str_head = "共" . $this->total . "条记录" . "&nbsp;" . $page . "/" . $this->pageNum . "页&nbsp;";
          $str_first = ''; //首页
          $str_pre = ''; // 上页
          $str_a = ''; //页码部分
          $str_next = ''; //下页
          $str_last = ''; //尾页
          $str_form = ''; //表单

          $mod = $page % $this->showCount;
          if ($mod != 0) {
               $n = floor($page/$this->showCount);
          } else {
               $n = floor($page/$this->showCount)-1;
          }

          for ($i=$this->showCount*$n+1; $i<=($this->showCount*$n+$this->showCount); $i++) {
               if ($i <= $this->pageNum) {
                    if ($page != $i) {
                         $str_a .= "<a href=\"{$this->uri}?np=". $i ."&{$queryString}\">" . $i . "</a>&nbsp;";    
                    } else {
                         $str_a .= "<a class=\"bold\">" . $i . "</a>&nbsp;";
                    }
               } else {
                    break;
               }
          }

          if ($page>1) {
               $str_first = "<a href=\"{$this->uri}?np=1&{$queryString}\">首页</a>&nbsp;";
               $str_pre = "<a href=\"{$this->uri}?np=" . ($page-1) . "&{$queryString}\">上页</a>&nbsp;";
          } else {
               $str_first = "首页&nbsp;";
               $str_pre = "上页&nbsp;";
          }
         
          if ($page < $this->pageNum) {
               $str_last = "<a href=\"{$this->uri}?np=" . $this->pageNum . "&{$queryString}\">尾页</a>&nbsp;";
               $str_next = "<a href=\"{$this->uri}?np=" . ($page+1) . "&{$queryString}\">下页</a>&nbsp;";
          } else {
               $str_last = "尾页&nbsp;";
               $str_next = "下页&nbsp;";
          }
         
          $str_form = "<input type=\"text\" style=\"width:30px;\" name=\"np\" id=\"np\">&nbsp;<input type=\"button\" value=\"Go\" id=\"go\">";
          $str = $str_head.$str_first.$str_pre.$str_a.$str_next.$str_last.$str_form;
          return $str;
     }
}

标签: php分页类

你可以发表评论、引用到你的网站或博客,或通过RSS 2.0订阅这个博客的所有文章。
上一篇: 简单的反垃圾评论脚本  |  下一篇:php中使用mysql的事务处理