mysql+php分页类(已测)

代码如下:

<?php      
/*     
mysql_pager.class.php

三个参数。 mysql_query()的结果, url变量page, 您要的每页记录数     
例子在这个文件底部     
淡水河边整理测试     
*/

class mysql_pager {      
  // define properties      
  var $page;      
  var $result;      
  var $results_per_page = 3;      
  var $total_pages;

/*       
Define the methods

下面是构造函数,和类同名(>php4)     
   需要查询的结果句柄,当前页码,每页记录数     
   like:  $f->mysql_pager($result, 1, 15);     
*/

function mysql_pager( $result, $current_page, $results_per_page ) {

if(!$result){      
        echo "<div align=center>数据库未运行,结果集错误</div>\n";        
        return;      
        }

$this->result = $result;

if(!$current_page || $current_page < 0)        
        $this->page = 1;      
   else $this->page = $current_page;

if(!emptyempty($results_per_page))        
      $this->results_per_page = $results_per_page;

$numrows = @mysql_num_rows($this->result);        
   if(!$numrows) {      
      echo "<div align=center>查询结果为空.</div>\n";      
      return;      
      }

$this->total_pages = ceil($numrows / $this->results_per_page);        
}

/*       
  下面是打印内容的函数,可以不用,也可以根据自己的需要扩展     
  这里只是打印出id     
*/

function print_paged_results() {        
    echo "<table border=0 align=center>\n";      
    $start = ($this->page - 1) * $this->results_per_page;      
    mysql_data_seek($this->result, $start);      
    $x = 0;      
    for($i = 1; $i <= $this->results_per_page && $row = @mysql_fetch_array($this->result); $i++) {      
        if($x++ & 1) $bgcolor = "#F2F2FF";      
        else $bgcolor = "#EEEEEE";

echo "<tr bgcolor=$bgcolor><td>". $row["id"] . "</td></tr>";            
        // 编辑这部分输出任何您想要的HTML

}

echo "</table>\n";      
}

/*       
  下面是打印页码和链接的函数     
  在我们需要显示页码的地方调用     
*/

function print_navigation() {      
    global $PHP_SELF;

echo "<div align=center>";

for($i = 1; $i <= $this->total_pages; $i++) { #loop to print << 1 2 3... $total_pages >>        
       if($i == 1 && $this->page > 1)  #Prints the << first to goto the previous page (not on page 1)        
          echo "<a href=\"$PHP_SELF?page=".($this->page - 1)."\" onMouseOver=\"status="Previous Page";return true;\" onMouseOut=\"status=" ";return true;\">?</a>";

if($i == $this->page)  #Doesn"t print a link itself, just prints page number       
          echo "<font color=\"#ff3333\"> $i </font>";

if($i != $this->page)  #Other links that aren"t this page go here       
          echo "<a href=\"$PHP_SELF?page=$i\" onMouseOver=\"status="Go to Page $i";return true;\" onMouseOut=\"status=" ";return true;\"> $i </a>";

if($i == $this->total_pages && $this->page != $this->total_pages)  #  Link for next page >>  (not on last page)        
          echo "<a href=\"$PHP_SELF?page=".($this->page + 1)."\" onMouseOver=\"status="Go to the Next Page";return true;\" onMouseOut=\"status=" ";return true;\">?</a>";        
       }

echo "</div>\n";        
  }

}

/*     
   mysql_connect($server, $uname, $pass );     
   mysql_select_db("$db");     
   $result= @mysql_query("Select * FROM table");

$p = new mysql_pager( $result, $page=$_GET["page"], 10 );     
   $p->print_navigation();     
   $p->print_paged_results();     
   $p->print_navigation();     
*/      
?>

(0)

相关推荐

  • 整合了前面的PHP数据库连接类~~做成一个分页类!

    不知道学PHP有没有前途~哎越写越没劲 <?php  Class createdb    //类的开始  {  var $db= "localhost";//数据库地址;  var $dbname = "root";//用户名;  var $dbpwd = "";//密码;  var $dbtable = "mysql";//使用的数据库  var $conn;    //数据库连接;  var $result;    

  • ThinkPHP分页类使用详解

    一.首先需要在MsgManage控制器中加入分页方法 知识点:1.count函数的试用2.Page类实例化操作及相关参数了解3.limit函数了用4.show函数了解 编辑文件admin/Lib/Action/MsgManageAction.class.php 代码如下: 复制代码 代码如下: class MsgManageAction extends CommonAction {    public function index(){     import('ORG.Util.Page'); 

  • 精美漂亮的php分页类代码

    这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改CSS样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即可,下面看下使用方法: 1,在head里包含pager.css 复制代码 代码如下: <link href="pager.css" type="text/css" rel="stylesheet" /> 2,在分页处进行类的实例化: 复制代码 代码如下: <?php   

  • 一个简单且很好用的php分页类

    复制代码 代码如下: class Page {    // 分页栏每页显示的页数    public $rollPage = 6;    // 页数跳转时要带的参数    public $parameter  ;    // 默认列表每页显示行数    public $listRows = 20;    // 起始行数    public $firstRow ;    // 分页总页面数    protected $totalPages  ;    // 总行数    protected $to

  • 两款万能的php分页类

    本文为大家分享个超级好用.万能的php分页类,具体的实现代码如下 第一款php分页类 <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * 分页类 * 使用方式: * $page = new Page(); * $page->init(1000, 20); * $page->setNotActiveTemplate('<

  • 高效mongodb的php分页类(不使用skip)

    mongodb分页skip+limit分页要先查出所有结果再去跳过,这样如果查询页面越往后效率越低. 如果能够通过查询条件查出每页结果的最后一条记录,在用最后一条记录作为查询条件去查下一页,这样每次都查询页面size条记录,效率不会差. 具体代码如下:包含mongodb.class.php, page.class.php, test.php mongodb.class.php mongodb 操作类 复制代码 代码如下: <?php function show_error($message, $

  • 完美的php分页类

    本文实例为大家分享了php分页类的具体代码,供大家参考,具体内容如下 <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private

  • PHP通用分页类page.php[仿google分页]

    page.php 复制代码 代码如下: <?php /** ** 通用php分页类.(仿Google样式) ** 只需提供记录总数与每页显示数两个参数.(已附详细使用说明..) ** 无需指定URL,链接由程序生成.方便用于检索结果分页. ** 表单采用GET方法提交,可保证在诸如查询之,删除之类的操作时,不丢失URL参数 **/ class Pager{ //IE地址栏地址 var $url; //记录总条数 var $countall; //总页数 var $page; //分页数字链接 v

  • ThinkPHP使用心得分享-分页类Page的用法

    ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page类: 复制代码 代码如下: import('ORG.Util.Page'); //Page类的引入$db = M('abc');//实例化数据表abc$where = array('id'=>'2';);//条件语句$where,例表中字段id的值为2$count = $db->where($where)->count();//获取符合

  • PHP 分页类代码(简单好用型)第1/2页

    [code] <?php // pager类 $page = $_GET 当前1/2页 12下一页阅读全文

随机推荐