Home >Backend Development >PHP Tutorial > 简易分页类解决思路

简易分页类解决思路

WBOY
WBOYOriginal
2016-06-13 12:35:251126browse

简易分页类
这是一个简单易用的分页类。只需在你原有的程序中加两句、改一句就可以了
先贴代码
paging.php

<?php<br />
class Paging {<br />
  public static $count = 0;<br />
  public static $size = 0;<br />
  public static $page = 0;<br />
  static function prepare($sql, $pagesize=10) {<br />
    $page = isset($_GET['page']) ? $_GET['page'] : 1;<br />
    $pageon = ($page - 1) * $pagesize;<br />
    $sql = preg_replace('/select\s/i', '$0SQL_CALC_FOUND_ROWS ', $sql) . " limit $pageon, $pagesize";<br />
    $rs = mysql_query($sql);<br />
    $p = mysql_query('SELECT FOUND_ROWS()');<br />
    list(self::$count) = mysql_fetch_row($p);<br />
    self::$size = $pagesize;<br />
    self::$page = $page;<br />
    return $rs;<br />
  }<br />
  static function bar($tpl='') {<br />
    if(!$tpl) $tpl = '<a href=?reset>首页</a> <a href=?prve>上一页</a> <a href=?next>下一页</a> <a href=?end>尾页</a>';<br />
    $count = ceil(self::$count / self::$size);<br />
    $page = self::$page;<br />
    unset($_GET['page']);<br />
    $d = array(<br />
      'reset' => 1,<br />
      'prve' => $page > 1 ? $page - 1 : 1,<br />
      'next' => $page < $count ? $page + 1 : $count,<br />
      'end' => $count,<br />
    );<br />
    foreach($d as $k=>$v) {<br />
      $_GET['page'] = $v;<br />
      $tpl = str_replace($k, http_build_query($_GET), $tpl);<br />
    }<br />
    echo $tpl;<br />
  }<br />
}<br />

通常你都有类似这样的语句
$sql =".....";
$rs = mysql_query($sql);

$rs = mysql_query("select ....");


你只需改作
include 'paging.php';
$rs = paging::prepare($sql, 每页行数);
在需要出现分页条的地方写入
paging::bar();

就可以了,非常简单!


------解决方案--------------------
前排拜模。
这样的写法还是第一次见到。
 $sql = preg_replace('/select\s/i', '$0SQL_CALC_FOUND_ROWS ', $sql) . " limit $pageon, $pagesize";

sql还用preg_replace……
------解决方案--------------------

谢谢分享,确实很方便  ,简单易用 。学习了。
------解决方案--------------------
引用:
这是一个简单易用的分页类。只需在你原有的程序中加两句、改一句就可以了
先贴代码
paging.php
PHP code
class Paging {
  public static $count = 0;
  public static $size = 0;
  public static $page = 0;
  static function prepare($sql, $……

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn