你只需要在需要添加页的页面加入这几行代码

<?php
include 'form.class.php';

$p=new Page(100, 'Demo01.php');//这里需要传递两个参数,参数一是分页中每页默认要显示的条数,参数二是本页面的链接地址

echo $p->ShowDiv();

?>

实现分类的页Page.class.php

<?php
class Page{
private $pageNum; //当前页
private $pageCount; //总页数
private $pageSize; //每页行数
private $rowCount; //总行数
private $url; //转跳的原地址

//__get()方法用来获取私有属性
public function __get($property_name)
{
if(isset($this->$property_name))
{
return($this->$property_name);
}
else
{
return(NULL);
}
}
//__set()方法用来设置私有属性
public function __set($property_name, $value)
{
$this->$property_name = $value;
}

//给以上变量赋值
function __construct($rowCount,$url){
//在地址栏取pageNum和pageSize变量的值
if(isset($_GET["page"])){
$this->pageNum=$_GET["page"];
$this->pageSize=$_GET["pageSize"];
}else{
$this->pageNum=1;
$this->pageSize=3;
}
//通过传进来的参数给rowCount和url赋值
$this->rowCount=$rowCount;
$this->url=$url;
//通过计算求得页面总数
$this->pageCount=intval($rowCount/$this->pageSize)+($rowCount%$this->pageSize?1:0);
}

/**
* 画界面
*/
function ShowDiv(){

//判断是否是第一页或最后一页,确定转跳地址
$nextPage=$this->pageNum+($this->pageNum<$this->pageCount? 1:0);
$lastPage=$this->pageNum-($this->pageNum>1? 1:0);

//首页和上一页
$div="<div style='text-align: center;'>";
//设置每页显示行数,放到表单里提交时可以显示到地址栏(a标签设置不用表单)
$div.="<form action='{$this->url}' method='get'>";
$div.="共【{$this->rowCount}】条数据 <a href='{$this->url}?page=1&pageSize={$this->pageSize}'>首页</a> ";
$div.="<a href='{$this->url}?page={$lastPage}&pageSize={$this->pageSize}'>上一页</a> ";

//12345的页数,用当前页面数判断显示哪些数字
if($this->pageCount<5){
for($i=1;$i<=$this->pageCount;$i++){
if($this->pageNum==$i){
$div.="<a>{$i}</a> ";
}else{
//a标签的数字和page相对应
$div.="<a href='{$this->url}?page={$i}&pageSize={$this->pageSize}'>{$i}</a> ";
}
}
}else if($this->pageNum<=3){
for($i=1;$i<=5;$i++){
if($this->pageNum==$i){
$div.="<a>{$i}</a> ";
}else{
$div.="<a href='{$this->url}?page={$i}&pageSize={$this->pageSize}'>{$i}</a> ";
}
}
}else if($this->pageNum>3&&$this->pageNum<$this->pageCount-3){
for($i=$this->pageNum-2;$i<=$this->pageNum+2;$i++){
if($this->pageNum==$i){
$div.="<a>{$i}</a> ";
}else{
$div.="<a href='{$this->url}?page={$i}&pageSize={$this->pageSize}'>{$i}</a> ";
}
}
}else{
for($i=$this->pageCount-4;$i<=$this->pageCount;$i++){
if($this->pageNum==$i){
$div.="<a>{$i}</a> ";
}else{
$div.="<a href='{$this->url}?page={$i}&pageSize={$this->pageSize}'>{$i}</a> ";
}
}
}

//下一页、末页和显示
$div.="<a href='{$this->url}?page={$nextPage}&pageSize={$this->pageSize}'>下一页</a> ";
$div.="<a href='{$this->url}?page={$this->pageCount}&pageSize={$this->pageSize}'>末页</a> ";
$div.="当前第【{$this->pageNum}】页,共【{$this->pageCount}】页 ";

$div.="<input type='hidden' value='1' name='page' /> ";//开头用page是否存在判断的
$div.="每页<input style='width: 30px' type='text' value='{$this->pageSize}' name='pageSize'/>行 ";
$div.="<input type='submit' value='设置' name='btnSet' /></form>";
$div.="</div>";
return $div;
}
}

?>

PHP+MySQL中实现分页的更多相关文章

  1. [数据库]Oracle和mysql中的分页总结

    Mysql中的分页 物理分页 •在sql查询时,从数据库只检索分页需要的数据 •通常不同的数据库有着不同的物理分页语句 •mysql物理分页,采用limit关键字 •例如:检索11-20条 selec ...

  2. MySQL中的分页操作结合python

    mysql中的分页操作结合python --分页: --方式1: ;-- 读取十行 , --从第十行读取 往后再读十行 --方式2: offset ; --从第二十行开始读取10行 -- 结合pyth ...

  3. Mysql中的分页处理

    先来说一下Mysql中limit的语法: --语法: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset --举例: selec ...

  4. 优化 MySQL 中的分页

    英文:Robert Eisele 译者:Giraffe 链接:http://yemengying.com/2016/05/28/optimized-pagiantion-mysql/ 一道面试的问题, ...

  5. mybatis在mysql中的分页扩展

    applicationContext.xml <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlS ...

  6. sql server和mysql中分别实现分页功能

    MySQL 在MySQL中,可以用 Limit 来查询第 m 列到第 n 列的记录, 例如: select * from tablename limit m, n sql="select * ...

  7. 在MySQL中如何使用覆盖索引优化limit分页查询

    背景 今年3月份时候,线上发生一次大事故.公司主要后端服务器发生宕机,所有接口超时.宕机半小时后,又自动恢复正常.但是过了2小时,又再次发生宕机. 通过接口日志,发现MySQL数据库无法响应服务器.在 ...

  8. Mysql中分页查询两个方法比较

    mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 1 2 3 SELECT COUNT(*) FROM foo WHERE b = 1;   SELECT a FROM ...

  9. MySQL中使用LIMIT分页

    需求:客户端通过传递pageNum(页码)和pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据. 我们知道MySQL提供了分页函数limit m,n,但是该函数的用法和需求不一样,所 ...

随机推荐

  1. 如何解决Maple的应用在数学中

    对任意数学和技术学科的研究员.教师和学生而言,Maple是一个必备的工具.通过Maple,教师将复杂数学问题注入生命,学生的精力集中在概念理解上而不是如何使用工具上,研究员可以开发更复杂的算法或模型. ...

  2. 标准数据源访问库 - JayData

    JayData 是一个标准的.跨平台的库和方法,用于访问和操作各种不同的数据源,最适合用于 JavaScript 和 HTML5 应用. 官方网站:http://jaydata.org/  ASP.N ...

  3. spark 笔记

    官网 http://spark.apache.org/ 安装:http://dblab.xmu.edu.cn/blog/spark-quick-start-guide/ 教程 http://www.c ...

  4. 【腾讯Bugly干货分享】让 CodeReview 这股清流再飞一会儿

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/ToYeT4Y4pzx0ii9Z92fo-Q 作者:刘 ...

  5. SQL Server 2000向SQL Server 2008 R2推送数据

    [文章摘要]最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现.我们服务器使用的是SQL Server 2008 R2,其他“服务器”使用的 ...

  6. Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放

    UEditor组件是百度提供的一套开源的web在线所见即所得富文本编辑器,具有轻量,可定制,注重用户体验等特点,基于MIT协议,功能很强大.最近在使用的过程中发现其中上传的图片(或者插入已有的表情包图 ...

  7. ASP.NET Web API自身对CORS的支持:从实例开始

    在<通过扩展让ASP.NET Web API支持W3C的CORS规范>中我们通过自定义的HttpMessageHandler为ASP.NET Web API赋予了跨域资源共享的能力,具体来 ...

  8. windows命令——taskmgr 1

    taskmgr.exe用于任务管理器.它显示系统中正在运行的进程. 该程序使用Ctrl+Alt+Del(一般是弹出Windows安全再点击“任务管理器”)或者Ctrl+Shift+Esc 有时候需要, ...

  9. 不知道张(zhāng)雱(pāng)是谁?你out了!

    张(zhāng)雱(pāng)是谁?也许你已经听说过了,也许你还没听说过呢,不过你一定听说过老刘——刘强东,没错,这二人是有关系的,什么关系,京东是老刘的,而张雱呢?张雱是京东旗下52家关联公司法人代 ...

  10. JavaScript中闭包之浅析解读

    JavaScript中的闭包真心是一个老生常谈的问题了,最近面试也是一直问到,我自己的表述能力又不能完全支撑起来,真是抓狂.在回来的路上,我突然想到了一个很简单的事情,其实我们在做项目时候,其实就经常 ...