mysql+php分页类(已测)


Posted in PHP onMarch 31, 2008
<?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();      
*/       
?> 
PHP 相关文章推荐
PHP网上调查系统
Oct 09 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
PHP中其实也可以用方法链
Nov 10 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
Jun 03 PHP
深入PHP变量存储的详解
Jun 13 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
php中Snoopy类用法实例
Jun 19 PHP
php时间计算相关问题小结
May 09 PHP
PHP微信开发之查询城市天气
Jun 23 PHP
PHP基本语法实例总结
Sep 09 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
PHP 数字左侧自动补0
Mar 31 #PHP
加强版phplib的DB类
Mar 31 #PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
Mar 30 #PHP
PHP5中的时间相差8小时的解决办法
Mar 28 #PHP
php heredoc和phpwind的模板技术使用方法小结
Mar 28 #PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 #PHP
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 #PHP
You might like
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
phpfans留言版用到的install.php
2007/01/04 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
Javascript removeChild()删除节点及删除子节点的方法
2015/12/27 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
Bootstrap表单Form全面解析
2016/06/13 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
Django中间件基础用法详解
2019/07/18 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
医院学雷锋活动策划方案
2014/02/15 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
建房合同协议书
2016/03/21 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书