<?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. troubleshooting ORA-600[6302] & ORA-600 [6200] corrupted index block

    今天同事的一套数据库遇到了alert 日志 一堆的ora-600,这是一套10.2.0.5 db 2nodes RAC on AIX , 找我帮着看看, 最终确认为一个索引出现了block corru ...

  2. Bootstrap: 样式CSS:carousel轮换 图片的使用

    Bootstrap 轮播(Carousel)插件 Bootstrap轮播(Carousel)插件是一种灵活的响应式的向站点添加滑块的方式.除此之外,内容也是足够灵活的,可以是图像.内嵌框架.视频或者其 ...

  3. C# json与对象之间的相互转换

    1. 添加命名空间 using System.Runtime.Serialization.Json; 2. WriteObject方法 // 从一个对象信息生成Json串 public static ...

  4. Action<>和Func<>区别

    Action<>和Func<>其实都是委托的[代理]简写形式. 简单的委托写法: //普通的委托 public delegate void myDelegate(string ...

  5. 【POJ1811】【miller_rabin + pollard rho + 快速乘】Prime Test

    Description Given a big integer number, you are required to find out whether it's a prime number. In ...

  6. php 单引号与双引号区别

    一.单引号与双引号区别 1." "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出. 2.' '单引号里面的不进行解释,直接输出. 从字面意思上就可以看出,单引号比双引 ...

  7. Sizzle引擎执行的流程图

    Sizzle有太多都不是太懂,但能看懂这张图. 图片来源: http://www.cnblogs.com/aaronjs/p/3332805.html

  8. createjs 下雪 实例

    demo:  http://output.jsbin.com/davixatona <!DOCTYPE html> <html> <head> <meta c ...

  9. LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法)

    一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一 台计算机.集群系统中的单个计 ...

  10. 帝国cms 灵动标签【列表页】调用当前父栏目下的所有子栏目

    <? $bclassid = $class_r[$GLOBALS[navclassid]][bclassid]; //获取当前父栏目ID ?> [e:loop={"select ...