<?php
/*
分页类 用于实现对多条数据分页显示 
version:1.0
author:Knight
E-Mail:S.Knight.Work@gmail.com
Date:2013-10-20
*/

/*
调用非常方便,先连接好数据库,直接传人查询的sql字符串即可,也可以指定每页显示的数据条数
例如$pages = new Page('SELECT * FROM `zy_common_member`');
或 $pages = new Page('SELECT * FROM `zy_common_member`', 10);
*/
class Page{
private $curPage;
private $totalPages;//数据总共分多少页显示
private $dispNum;//每页显示的数据条数
private $queryStr;//查询的SQL语句
private $limitStr;//查询语句后面的limit控制语句

/*
构造函数
$queryStr 查询数据的SQL语句
$dispNum 每页显示的数据条数
*/
public function __construct($queryStr='',$dispNum=10){
$result = mysql_query($queryStr);
$totalNum = mysql_num_rows($result);
$this->dispNum = $dispNum;
$this->totalPages = ceil($totalNum / $dispNum);
$this->queryStr = $queryStr;

$temp = (isset($_GET["curPage"]) ? $_GET["curPage"] : 1);
$this->setCurPage($temp);

$this->showCurPage();
$this->showFoot();
}

/*显示当前页的数据内容*/
private function showCurPage(){
$this->limitStr = ' LIMIT '.(($this->curPage - 1)* $this->dispNum).','.$this->dispNum;
//echo $this->queryStr.$this->limitStr;
$result = mysql_query($this->queryStr.$this->limitStr);

if (!$result)
{
if ($this->totalPages > 0)
{
echo '查询出错'.'<br>';
}
else
{
echo '无数据'.'<br>';
}
return;
}
$cols = mysql_num_fields($result);

echo '<table border="1">';
echo '<tr>';
for($i=0; $i<$cols; $i++)
{
echo '<th>';
echo mysql_field_name($result, $i);
echo '</th>';
}
echo '</tr>';

while($row = mysql_fetch_assoc($result))
{
echo '<tr>';
foreach($row as $key=>$value)
{
echo '<td>';
echo $value;
echo '</td>';
}
echo '</tr>';
}

echo '</table>';
}

private function setCurPage($curPage){
if($curPage < 1)
{
$curPage = 1;
}
else if($curPage > $this->totalPages)
{
$curPage = $this->totalPages;
}
$this->curPage = $curPage;
}

/*
显示分页页脚的信息
如首页,上一页,下一页,尾页等信息
*/
private function showFoot(){
echo '<a href="?curPage=1">首页</a>';
echo '<a href="?curPage='.($this->curPage - 1).'">上一页</a>';
echo '<a href="?curPage='.($this->curPage + 1).'">下一页</a>';
echo '<a href="?curPage='.$this->totalPages.'">尾页</a>';
}

}

?>

用PHP写的一个简单的分页类 1.0版的更多相关文章

  1. 用PHP写的一个简单的分页类 2.0版

    <?php /* 分页类 用于实现对多条数据分页显示 version:2.0 //基于1.0 数据库查询用mysqli实现 author:Knight E-Mail:S.Knight.Work@ ...

  2. 只是一个用EF写的一个简单的分页方法而已

    只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...

  3. 自己写的一个简单的Tab类

    //------------- PS_DOM 功能函数 start----------------var PS_DOM ={ indexOf: function(arr, e){ for(var i= ...

  4. 写了一个简单的CGI Server

    之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看 ...

  5. 自己写的一个简单PHP采集器

    自己写的一个简单PHP采集器 <?php //**************************************************************** $url = &q ...

  6. 写了一个简单可用的IOC

    根据<架构探险从零开始写javaweb框架>内容写的一个简单的 IOC 学习记录    只说明了主要的类,从上到下执行的流程,需要分清主次,无法每个类都说明,只是把整个主线流程说清楚,避免 ...

  7. 写了一个简单的 Mybatis

    写了一个简单的 Mybatis,取名 SimpleMybatis . 具备增删改查的基本功能,后续还要添加剩下的基本数据类型和Java集合类型的处理. 脑图中有完整的源码和测试的地址 http://n ...

  8. Python之自定义封装一个简单的Log类

    参考:http://www.jb51.net/article/42626.htm 参考:http://blog.csdn.net/u011541946/article/details/70198676 ...

  9. VC++ 一个简单的Log类

    在软件开发中,为程序建立Log日志是很必要的,它可以记录程序运行的状态以及出错信息,方便维护和调试. 下面实现了一个简单的Log类,使用非常简单,仅供参考. // CLogHelper.h : hea ...

随机推荐

  1. windows 2003 搭建一个vpn

    最近从Photonvps.com 租了一台windows主机用来测试网站,512MB的内存,35GB的硬盘空间,每个月500GB的流量和2个独立IP地址.我感觉价格偏贵,不过售后服务还是蛮不错的,每次 ...

  2. FXBlurView用法

    FXBlurView是UIView的子类,它实现毛玻璃效果的原理其实就是覆盖上一层FXBlurView的实例对象. - (void)viewDidLoad { [super viewDidLoad]; ...

  3. Set集合中的HashSet集合

    HashSet集合的特点:元素是具备唯一性的,每次存储都要先算出哈希值,看有没相同,没有相同的存储到相应的位置,如果相同则再判断存储进来的值是否与被比较的相同,如果相同,则不再存储,不同就存储 pac ...

  4. VS2008/MFC —常用控件使用总结 转载

    在公司培训期间,经理给了我们没人10个界面草图,让我们在VS2008下使用MFC设计,因为在经理的帮助和自己的努力下,终于在三天时间内完成,现在就根据在这三天 时间里所用到的控件做出如下总结: 1.D ...

  5. Windows phone 之手势识别(Drag)

    首先,在XAML页面中,添加如下代码: 前提,别忘了添加 1.引入dll (silverlight for wndows phone toolkit) 2.引入命名空间 xmlns:toolkit=& ...

  6. ruby 中文支持设置

    学习Ruby的过程中,对于于涉及中文的的代码的时候,需要添加如下代码在首行 # encoding: utf-8 或者EMAC写法 # -*- coding : utf-8 -*- 因为Ruby编译器会 ...

  7. u-boot烧写Linux及系统整个启动过程

    一.烧写文件 u-boot: u-boot.bin linux kernel: uImage Filesystem: root.bin(yaffs) 二.烧写步骤  1.烧写u-boot tftp 0 ...

  8. windows server 2012服务器IIS基本配置

  9. 扩展原生js的一些方法

    扩展原生js的Array类 Array.prototype.add = function(item){ this.push(item); } Array.prototype.addRange = fu ...

  10. svn代码统计

    http://chenzhou123520.iteye.com/blog/1436653