转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
如何 PHP + MYSQL 对数据库内数据实现分页显示         ★★★★

如何 PHP + MYSQL 对数据库内数据实现分页显示

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1877 更新时间:2009/4/22 20:49:05

如何 PHP + MYSQL 对数据库内数据实现分页显示

  很多PHP的初学者,都对于WEB页面的分页显示比较困惑,其实分页显示的原理非常简单,今天又有人在QQ上问我这个问题。由于顺手写了这一小记,便于众兄弟朋友翻阅。

问题:我的数据库结构如下

Create database book_list (
 id int unsigned not null auto_increment,
 name varchar(50) not null,
 author varchar(50) not null,
 primary key (id)
)

id: 为书籍的ID言标识,主键
name:书籍名称
author:书书籍作者

本例数据表的比较简单,主要是方便于解释。

现在我们需要这样分页显示这些数据,要求:数据表中已经有 11 条记录,每页显示数据为 5 条,分多页显示。

根据要求现在分析一下,

第一页显示 0 - 4 条记录
第二页显示 5 - 9 条记录
第三页显示 10 - 14 条记录

实际上可以得出如下结论,每次都需要从 $posion 条显示,显示数为 $pageSize ,在mysql中有这样一条SQL语句:

SELECT *
FROM book_list
WHERE 1
LIMIT 0, 5

意思是从第 0 条记录开始,读取 5 条记录。我们可以这一语句的特点来构建我们的函数,其实每次显示时就是要确定 $posion 即可了。实现代码如下:

$pageNO = 3; //确实显示第三页
$posion = ($pageNO - 1) * $pageSize; //计算从第几条记录读取

//然后构建如下SQL语句
$sql = “SELECT * FROM book_list WHERE 1 LIMIT $posion , $pageSize”;

即可以直接读出要显示的那一页所有数据。

那么下面即给一个简化版的分页类,可以对任何的数据表进行分页显示的。以便抛砖引玉.

PHP:
class Page {
    var
$tableName;        //操作的表

    
var $pageSize;        //页大小, 默认为10页
    
var $pageNO;        //当前页码即需要显示的页号
    
var $pageNum;          //页数统计

    
var $order_field;    //排序的字段
    
var $order_type;    //排序的方法

    //构造函数,实现附加功能
    //        $t 为操作的表名
    
function Page( $t ) {
        if (
$t == '''''''' ) {
            echo
" Table name is incorrect ! ";
            return
FALSE;
        }

        
$this->tableName        = $t;
        
$this->pageSize         = 10;
        
$this->pageNO           = 1;
        
$this->pageNum          = NULL;
        
$this->order_field    =    ''''1'''';
        
$this->order_type        = ''''DESC''''
    
}

    
//设置页大小
    
function Set_PageSize( $p = 10 ) {
        
$this->pageSize = $p;
        return
TRUE;
    }

    
//设置当前页码
    
function Set_PageNo( $p ) {
        
$this->PageNo = $p;
        return
TRUE;
    }

    
//获得总页数
    //        $t 为具体的表
    
function Get_PageNum() {
        global
$db;        //引用一个全局的$db操作类对象

        
$sql = "SELECT count(*) AS num
                        FROM $this->tableName"
;
        
$result = $db->Query( $sql );
        
$obj = $db->FetchObject( $result );

        return
$this->pageNum = $obj->num;
    }

    
//获得当前页码
    
function Get_PageNo() {
        return
$this->pageNo;
    }

    
//获得当前分页大小
    
function Get_PageSize() {
        return
$this->pageSize;
    }

    
//获得需要显示的页的起启行号
    
function Get_Posion() {
        return
$posion = ( $this->pageNO - 1 ) * $this->pageSize;
    }

    
//读取数据表的数据
    //        $f 为需要读取的字段列表
    // &nb

[1] [2]  下一页


[MySql]PHP存取 Mysql 数据乱码终极解决方案  [Web开发]PHP提示Notice: Undefined variable的解决办法
[MySql]解决Table xxx is marked as crashed and should …  [MySql][MySQL]快速解决"is marked as crashed and shoul…
[MySql]MySQL DELETE语法用法详解  [MySql]mysql中时间日期格式化
[Web开发]PHP 大小写函数  [MySql]修改mysql导入文件大小限制
[Web开发]PHP的sleep函数关闭窗口后是否继续运行?  [搜索优化]闵涛——如何让百度重新收录你的网站,网站被K怎么…
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台