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 相关文章推荐
使用php4加速网络传输
Oct 09 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
使用xampp搭建运行php虚拟主机的详细步骤
Oct 21 PHP
深入解析PHP中foreach语句控制数组循环的用法
Nov 30 PHP
yii数据库的查询方法
Dec 28 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
Jan 27 PHP
PHP创建对象的六种方式实例总结
Jun 27 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 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
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
为数据添加append,remove功能
2006/10/03 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
Python sys.path详细介绍
2013/10/17 Python
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
简单实现python爬虫功能
2015/12/31 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
大学生表扬信范文
2014/01/09 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
争先创优演讲稿
2014/09/15 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
中小企业员工手册范本
2015/05/14 职场文书
爱国电影观后感
2015/06/19 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
JS函数式编程实现XDM一
2022/06/16 Javascript