本文主要和大家分享php实现仿百度分页的实例,先来看一下效果图。

基本策略

1, 首先要查询总记录数

2, 设置每页显示的数量并计算总页数

3, 增加一个get传值num代表当前访问的是哪一页,如果没有num的get传值,应该设置默认的当前页为第一页!

4, 就拿一个字符串来保存页码链接,这个字符串也叫作页码字符串!

5, 在查询的时候,就应该使用limit子句进行限制(limit子句分页原理)

完成仿百度分页功能

分页需求

1, 当前页是前3页的时候,显示的初始页$startNum是1,显示的最后一页$endNum是5

2, 当前页是第4页的时候,$startNum为2,$endNum = $startNum +4, 当前页是第5页的时候,$startNum为3,依次类推

3, 页码的起始位置不能超过总页数 $pages – 4;

代码如下:

代码

//应该加载视图文件之前和提取帖子的结果集之前进行分页

//以下的代码都和分页相关

//(1)定义当前选中的页码数

$pageNum = isset($_GET['num'])?$_GET['num']: 1;

//(2)定义每一页显示的记录数

$rowsPerPage = 5;

//(3)查询总记录

$sql="select count(*) as sum frompublish";

$result = my_query($sql);

$row = mysql_fetch_assoc($result);

$rowCount = $row['sum'];//得到总记录数

//(4)计算总页数

$pages = ceil($rowCount/$rowsPerPage);//得到总页数

//(5)拼凑页码字符串

$strPage = '';//页码字符串

//拼凑出首页

$strPage .= "<ahref='./list_father.php?num=1'>首页</a>";

//拼凑出上一页

$preNum = $pageNum == 1 ? 1 : $pageNum-1;

$strPage .= "<ahref='./list_father.php?num=$preNum'>上一页</a>";

//确定显示的初始页$startNum

if($pageNum<=3){

         $startNum= 1;

}else{

         $startNum= $pageNum - 2;

}

//确定显示的初始页$startNum的最大值

if($startNum > $pages- 4){

         $startNum= $pages-4;

}

//防止页码出现复制

if($startNum<=1){

         $startNum=1;

}

//确定显示的最后一页 $endNum

$endNum=$startNum+4;

//防止最后一页越界;

if($endNum>=$pages){

         //$endNum=$pageNum;//错误

         $endNum=$pages;

}

//拼凑出中间的页码

for($i=$startNum;$i<=$endNum;$i++){

         //如果$i刚好是选中的当前页,标红

         if($i==$pageNum){

                   $strPage.= "<a href='./list_father.php?num=$i'><fontcolor='red'>$i</font></a>";

         }else{

                   $strPage.= "<a href='./list_father.php?num=$i'>$i</a>";

         }

         //$strPage.= "<a href='./list_father.php?num=$i'>$i</a>";

}

/*for($i=1;$i<=$pages;$i++){

         $strPage.= "<a href='./list_father.php?num=$i'>$i</a>";

}*/

////拼凑出下一页

$nextNum = $pageNum == $pages ? $pages :$pageNum+1;

$strPage .= "<a href='./list_father.php?num=$nextNum'>下一页</a>";

//拼凑出尾页

$strPage .= "<ahref='./list_father.php?num=$pages'>尾页</a>";

//提取帖子的结果集

$offset = $rowsPerPage*($pageNum-1);

$sql="select * from publish left joinuser on pub_owner=user_name order by pub_time desc limit$offset,$rowsPerPage";

$result=my_query($sql);//得到了资源结果集

php实现仿百度分页的更多相关文章

  1. JAVA仿百度分页

    最近在做一个仿百度网盘的网页小应用,找到了一个优雅简洁的分页插件,和百度搜索的分页很相似,对他进行了二次封装,拿出来跟大家分享下 插件源码 /** * This jQuery plugin displ ...

  2. 自定义vue组件之仿百度分页逻辑

    <template> <div> <ul :total="total" :pageSize="pageSize" :pageNum ...

  3. 仿百度糯米TP5项目笔记

    需求分析 系统三大模块 商家平台.主平台.前台模块 Thinkphp5.0实战 仿百度糯米开发多商家电商平台网盘下载 (2017-04-24 01:46:23) 转载▼     第1章 课程简介 本章 ...

  4. WPF仿百度Echarts人口迁移图

    GitHub地址:https://github.com/ptddqr/wpf-echarts-map/tree/master 关于大名鼎鼎的百度Echarts我就不多说了 不了解的朋友直接看官方的例子 ...

  5. 【原创】jQuery 仿百度输入标签插件

    1.先上效果图 2.调用方式 <link href="/Styles/tagsinput.css" rel="stylesheet" type=" ...

  6. ArcGIS JS 学习笔记2 实现仿百度的拖拽画圆

    一.前言 吐槽一下,百度在国内除了百度地图是良心产品外,其他的真的不敢恭维.在上一篇笔记里,我已经实现了自定义的地图测量模块.在百度地图里面(其他地图)都有一个周边搜索的功能,拖拽画一个圆,然后以圆半 ...

  7. 一款基于jQuery的仿百度首页滑动选项卡

    今天给大家分享一款基于jQuery的仿百度首页滑动选项卡.这款选项卡适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   ...

  8. 高仿百度传课应用客户端源码iOS版

    高仿百度传课iOS版,版本号:2.4.1.2 运行环境:xcode6.3  ios8.3 (再往上系统没有测试) 转载请注明出处,不可用于商业用途及不合法用途. 如果你觉得不错,欢迎  star  哦 ...

  9. iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/

    http://zanderzhang.gitcafe.io/2015/09/19/iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/ 百度外卖选择送货地址: 饿了么选择送货地 ...

随机推荐

  1. 自动生成 java 测试 mock 对象框架 DataFactory-01-入门使用教程

    项目简介 Data-Factory 用于根据对象,随机自动生成初始化信息,避免了手动创建对象的繁琐,便于测试. 特性 8 大基本类型的支持 String.Date.金额,日期等常见类型的支持 java ...

  2. (Python基础)字符串操作

    以下是我在学习过程中用的一些常用字符串操作的相关列子和具体注释,感兴趣的可以自己动手试试看 #字符串操作 name = 'my name is keep' print(name.capitalize( ...

  3. C# 面试知识点网络文档整理

    一 C# .NET技术 1.ASP.NET MVC如何控制权限? 2.C#.NET中的CTS.CLS和CLR? 3.什么是多线程,如何创建和如何使用?请写一个多线程单例模式? 4.什么是单例模式? 5 ...

  4. nltk-贝叶斯分类器

    本人小白一枚,专业统计,之前做过质量工程,现转行将近一年,开始记录我的学习过程及踩过的坑. 第一篇:用贝叶斯分类器(本文使用NLTK中的NaiveBayesClassifier)将5000多个样本进行 ...

  5. JS防抖与节流函数封装

    防抖 在监听scroll事件的时候经常会用到防抖,当滚动到某一位置而触发状态,从而不会出现频繁滚动持续触发事件的情况 防抖的事件处理机制仅触发一次且必须是结束状态下才会执行 function debo ...

  6. Java学习--枚举

    枚举类型enum,地位等同于class,interface 使用enum定义的枚举类型,也是一种变量类型,可用于声明变量 枚举的一些特征 1.它不能有public的构造函数,这样做可以保证客户代码没有 ...

  7. Django+xadmin的安装与配置

    已安装python3.6.5rcl 已安装django-1.10.8(后续有错) 一.安装xadmin 1.下载xadmin,下载地址:https://github.com/sshwsfc/xadmi ...

  8. 浅谈Java堆内存分代回收

    目录 1.概述 2.堆内存是如何分代的 3.各分代之间是如何配合工作的 1.概述 与C++不同的是, 在Java中我们无需关心对象占用空间的释放, 这主要得益于Java中的垃圾处理器(简称GC)帮助我 ...

  9. [Docker] 写 Dockerfile 的最佳实践理论

      指导方针   创建短暂的容器   意思是 container 可以停止和销毁,接着以最小化启动和配置进行重新构建和替换.   理解构建的上下文   使用 docker build ,当前工作环境称 ...

  10. jdk-8u181-docs.chm -- 制作时间2018年8月12日

    为了方便查阅,自己做了一个JDK8的chm文件:jdk-8u181-docs.chm    密码: g675 chm制作工具 :chmwriter 目录: