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 模拟POST|GET操作实现代码
Jul 20 PHP
php生成shtml类用法实例
Dec 09 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
解决PHP里大量数据循环时内存耗尽的方法
Oct 10 PHP
php生成动态验证码gif图片
Oct 19 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 PHP
详解使用php-cs-fixer格式化代码
Sep 16 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
php split汉字
2009/06/05 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
jQuery中element选择器用法实例
2014/12/29 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
python实现实时监控文件的方法
2016/08/26 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
django用户登录和注销的实现方法
2018/07/16 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
python二维键值数组生成转json的例子
2019/12/06 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
详解Python IO编程
2020/07/24 Python
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
摄影实习自我鉴定
2013/09/20 职场文书
中专生毕业自我鉴定
2013/11/01 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
班级活动总结格式
2014/08/30 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
Python使用MapReduce进行简单的销售统计
2022/04/22 Python
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers