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
Win2003服务器安全加固设置--进一步提高服务器安全性
May 23 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
php缓冲 output_buffering和ob_start使用介绍
Jan 30 PHP
php中session过期时间设置及session回收机制介绍
May 05 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
php采集内容中带有图片地址的远程图片并保存的方法
Jan 03 PHP
PHP访问Google Search API的方法
Mar 05 PHP
我整理的PHP 7.0主要新特性
Jan 07 PHP
让你的PHP7更快之Hugepage用法分析
May 31 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
PHP后期静态绑定实例浅析
Dec 21 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
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
PHP校验ISBN码的函数代码
2011/01/17 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
实例解析Array和String方法
2016/12/14 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
python获取中文字符串长度的方法
2018/11/14 Python
python输入错误后删除的方法
2019/10/12 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
美国牛仔品牌:True Religion
2018/11/16 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
迟到检讨书1000字
2014/01/15 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
2014年财务部工作总结
2014/11/11 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
element多个表单校验的实现
2021/05/27 Javascript
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android