Heim > Artikel > Backend-Entwicklung > 【代码】PHP 分页种
【代码】PHP 分页类
<?php /*** @name Pager's class* @author Refer* @copyright www.phpcq.com* @version Alpha 1.0* @todo 下拉菜单分页---From表单传值...可以根据自己的情况(采用GET传值)**/class Pager{/*** startRow** @var Int*/public $startRow;/*** 页面的总数** @var Int*/public $pageTotal;/***翻页值** @var Int*/public $offset;/*** 每页所显示记录数** @var Int*/public $pageSize;/*** get参数** @var Int*/public $get;/*** post参数** @var Int*/public $post;/*** 构造函数--初始化翻页类 (PS:^_^不错的php学习交流群:276167802,验证:csl,有兴趣的话可以加入进来一起讨论)** @param Int $total* @param Int $pageSize*/public function __construct($total,$pageSize){$this->get = (int)$_GET['startRow'];$this->post = (int)$_POST['pageNums'];$this->pageSize = $pageSize;$this->pageTotal = ceil($total / $pageSize);switch ($_GET['method']){default:$this->startRow = 1;$this->offset = 0;break;case 'first':$this->first();break;case 'previous':$this->previous();break;case 'next':$this->next();break;case 'last':$this->last();break;}}/*** 首页方法**/public function first(){$this->startRow = 1;$this->offset = ($this->startRow - 1) * $this->pageSize;}/*** 上一页方法**/public function previous(){$this->startRow = $this->get - 1;if ($this->startRow startRow = 1;}$this->offset = ($this->startRow - 1) * $this->pageSize;}/*** 下一页方法**/public function next(){$this->startRow = $this->get + 1;if ($this->startRow > $this->pageTotal) {$this->startRow = $this->pageTotal;}$this->offset = ($this->startRow - 1) * $this->pageSize;}/*** 最后页方法**/public function last(){$this->startRow = $this->pageTotal;$this->offset = ($this->startRow - 1) * $this->pageSize;}/*** 下拉菜单翻页** @return Int*/public function numPages(){if ($this->post) {$pageNums = "<option>$this->post</option>";$this->startRow = $this->post;$this->offset = ($this->post - 1) * $this->pageSize;}for ($i = 1; $i pageTotal;$i++){if ($i != $this->post) {$pageNums .= "<option>$i</option>";}}return $pageNums;}/*** 当前是第几页** @return Int*/public function noncePage(){if ($this->post) {return $this->startRow = $this->post;} else {return $this->startRow = $this->startRow;}}}
$total = $total->total();//总记录$pageSize = 15;//每页显示的记录$pager = new Pager($total,$pageSize);if ($pager->post){$startRow = $pager->noncePage();}$startRow = $pager->startRow;$pager->numPages();$article->query("SELECT * FROM `categories` as c,`articles` as n WHERE c.id = n.pidORDER BY n.id DESC LIMIT $pager->offset,$pageSize");while ($article->fetchArray()) {$article->data['content'] = mb_substr(strip_tags($article->data['content']),0,40,'utf-8');$articleIndex[] = $article->data;}$article->free();} else {header("location:?act=login");}$view->view->assign('startRow',$startRow);//caption$view->view->assign('total',$total);//caption$view->view->assign('pageNums',$pager->numPages());//pageNums$view->view->assign('noncePage',$pager->noncePage());//pageNums$view->view->assign('pageTotal',$pager->pageTotal);//pageTotal
<!--{if $pageTotal > 1}-->