分享好友 编程语言首页 频道列表

mysql+php分页类(已测)

PHP教程  2015-11-18 16:130

复制代码 代码如下:

<?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)."\" on MouseOver=\"status="Previous Page";return true;\" on MouseOut=\"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\" on MouseOver=\"status="Go to Page $i";return true;\" on MouseOut=\"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)."\" on MouseOver=\"status="Go to the Next Page";return true;\" on MouseOut=\"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教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
Perl操作Mysql数据库 perl操作excel
一. 安装DBI模块步骤1:从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件:ReadmeDBI.ppdDBI.tar.gz步骤2: 在DOS窗口下,temp目录中运行下面的DOS命令:ppm install DBI.ppd 如果提示无效命令,可在perl/bin目录下运行 二. 安装DBD

0评论2023-02-09348

Mysql数据库一个小程序实现自动创建分表。
每当跨月的时候也是系统出问题最多的时候,没有表和字段缺失是两个最常见的错误。为了解决这个问题,研究了一下mysql的 information_schema 表:information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访

0评论2023-02-09699

Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决(对三层的例子配置有帮助)
Delphi IDE中包含一个Data Explorer的组件,如下图所示:  该组件基于dbExpress(包含TSQLConnection、TSQLDataSet、TSQLQuery、TSQLStoredProc、TSQLTable、TsqlServerMethod、TSQLMonitor、TSimpleDataSet)。但是因为该组件只提供了各种数据库的抽象驱动

0评论2023-02-09410

DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境
DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境笔者使用ubuntu64位LINUX首先必须保证LINUX可以连互联网。安装MYSQLsudo apt-get update sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmysqlclient-dev复制MYSQL的

0评论2023-02-09635

Centos7上安装MySQL5.5报错,/usr/bin/perl is needed by MySQL-server.rpm
今天在Centos7上安装MySQL5.5时报了如下错/usr/bin/perl is needed by MySQL-server-...按照网上的几种说法进行了尝试1、在perl官网下载perl后安装到相应的目录下,仍无法解决问题2、采用强制安装 rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm --nodeps 

0评论2023-02-09740

用perl做数据库迁移,从MSSQL到MYSQL(三)--V1.1版~多线程+handlerSocket
从前边的程序的运行情况来看,程序是可以运行的,但速度太扯了,在读写1000W条之前速度还是可以的(大概2000条/秒左右),但过了1000W之后(变成400条/秒左右),当然这个与SQL SERVER读取,网络还有服务器等性能都是有关系的,但,这速度,不晓得有测试过的

0评论2023-02-09304

R语言连接MYSQL r语言连接数据库
 操作系统:centos 6.4 64bit R语言可以使用RMySQL来连接Mysql数据库,直接使用数据库里面的数据生成图像。 这个是RMYSQL的说明:http://cran.r-project.org/web/packages/RMySQL/index.htmlRMYSQL的依赖:Depends:R (≥ 2.8.0), methods, DBI (≥ 0.2-2),

0评论2023-02-09328

R语言读取MySQL数据表 R语言数据读取
1.R中安装RODBC包install.packages("RODBC")2.在Windows系统下安装MySQL的ODBC驱动注意区分32位和64位版本;http://dev.mysql.com/downloads/connector/odbc3.ODBC的系统配置在Windows操作系统下:控制面板-管理工具-数据源(ODBC)-双击-添加-选中mysql ODBC

0评论2023-02-09631

TypeScript封装统一操作Mysql Mongodb Mssql的底层类库demo
/*功能:定义一个操作数据库的库支持 Mysql MssqlMongoDb要求1:Mysql MsSqlMongoDb功能一样都有 addupdatedeleteget方法注意:约束统一的规范、以及代码重用解决方案:需要约束规范所以要定义接口 ,需要代码重用所以用到泛型1、接口:在面向对象的编程中,

0评论2023-02-09647

Windows下Ruby on rails 连接mysql数据库失败的解决方法
在Windows下折腾Ruby on rails,总会碰到各种各样你所意想不到的问题,所以过来人一般都会叫你用Linux吧,有条件的直接上Mac,但是对于我们这种苦逼的校园网用户来说,用Linux吧,校园网客户端不支持,Mac?屌丝用的???下面直接切入正题。。。今天在学校Ru

0评论2023-02-09449

nodejs游戏服务器开发(二)---mysql连接 使用nodejs搭建服务器
上一章说到了socket的连接,那么这一张就讲述如何用nodejs进行mysql的连接;这时需要为NodeJS加入Mysql 的Module了,在这个时候,我们搭好的nodejs环境就起到作用了,先安装mysql module先行cd到你要安装的目录执行以下命令  $npm install Mysql 现在就先

0评论2023-02-09636

用Nodejs连接MySQL nodejs与javascript
首先需要自己安装mysql数据库 不会的找一个集成包就可以然后才能接着下面的事情~建立MySQL测试库本地创建MySQL测试库:nodejs~ mysql -uroot -pmysql CREATE DATABASE nodejs;mysql SHOW DATABASES;+--------------------+| Database |+--------------------+

0评论2023-02-09998

nodejs的mysql模块学习(七)连接池事件 nodejs 连接池
connection当建立连接的时候就会触发pool.on('connection' function(connection){connection.query('SET SESSION auto_increment_increment=1')})enqueue当回调等待可用连接时就会触发pool.on('enqueue', function () {console.log('Waiting for available co

0评论2023-02-09543

nodejs的mysql模块学习(九)连接池集群 node mysql 连接池
连接池集群连接池集群可以提供多个主机连接创建连接池集群//创建连接池集群var poolCluster = mysql.createPoolCluster();//添加配置 config是一个连接池配置poolCluster.add(config);//使用自动名称添加配置poolCluster.add('MASTER',masterConfig);//添加命

0评论2023-02-09697

更多推荐