Today's Question:  What does your personal desk look like?        GIVE A SHOUT

Simple PHP paging class

  sonic0002        2012-09-10 20:23:33       6,160        0    

Frequently in our web applications, we may have many records in the database to display. In order to imrpove loading speed and efficiency, we may need to display some records at a time, so we need to paginate the records. For example, if we have 1 million book records and when users want to view the book list, it's inefficient to display all the records on the same page, we may need to have some pagination to allow displaying a portion of the records such as 20 records per page. This is a simple PHP pagination class, here is the code.

paing.php

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

Usually we may use following codes to retrieve the records

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

or

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

With this class, you only need to

include 'paging.php';

$rs = paging::prepare($sql, $pagesize); //$pagesize --records to show per page

paging::bar();

 

Source : http://topic.csdn.net/u/20120828/18/176EF3DB-55EA-40CA-AAF4-6321F3B44E12.html

PHP  CLASS  PAGING 

Share on Facebook  Share on Twitter  Share on Weibo  Share on Reddit 

  RELATED


  0 COMMENT


No comment for this article.