php实现仿百度分页
本文主要和大家分享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实现仿百度分页的更多相关文章
- JAVA仿百度分页
最近在做一个仿百度网盘的网页小应用,找到了一个优雅简洁的分页插件,和百度搜索的分页很相似,对他进行了二次封装,拿出来跟大家分享下 插件源码 /** * This jQuery plugin displ ...
- 自定义vue组件之仿百度分页逻辑
<template> <div> <ul :total="total" :pageSize="pageSize" :pageNum ...
- 仿百度糯米TP5项目笔记
需求分析 系统三大模块 商家平台.主平台.前台模块 Thinkphp5.0实战 仿百度糯米开发多商家电商平台网盘下载 (2017-04-24 01:46:23) 转载▼ 第1章 课程简介 本章 ...
- WPF仿百度Echarts人口迁移图
GitHub地址:https://github.com/ptddqr/wpf-echarts-map/tree/master 关于大名鼎鼎的百度Echarts我就不多说了 不了解的朋友直接看官方的例子 ...
- 【原创】jQuery 仿百度输入标签插件
1.先上效果图 2.调用方式 <link href="/Styles/tagsinput.css" rel="stylesheet" type=" ...
- ArcGIS JS 学习笔记2 实现仿百度的拖拽画圆
一.前言 吐槽一下,百度在国内除了百度地图是良心产品外,其他的真的不敢恭维.在上一篇笔记里,我已经实现了自定义的地图测量模块.在百度地图里面(其他地图)都有一个周边搜索的功能,拖拽画一个圆,然后以圆半 ...
- 一款基于jQuery的仿百度首页滑动选项卡
今天给大家分享一款基于jQuery的仿百度首页滑动选项卡.这款选项卡适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览 ...
- 高仿百度传课应用客户端源码iOS版
高仿百度传课iOS版,版本号:2.4.1.2 运行环境:xcode6.3 ios8.3 (再往上系统没有测试) 转载请注明出处,不可用于商业用途及不合法用途. 如果你觉得不错,欢迎 star 哦 ...
- iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/
http://zanderzhang.gitcafe.io/2015/09/19/iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/ 百度外卖选择送货地址: 饿了么选择送货地 ...
随机推荐
- Python全栈开发记录_第四篇(集合、函数等知识点)
知识点1:深拷贝和浅拷贝 非拷贝(=赋值:数据完全共享,内存地址一样,修改一个另一个也变化) 浅拷贝:数据半共享(复制其数据独立内存存放,但是只拷贝成功第一层)像[[1,2],3,4]如果修改列表中列 ...
- java 英文单词拼写纠正框架(Word Checker)
Word Checker 本项目用于单词拼写检查. 项目简介 word checker 用于单词拼写检查. Github 地址 特性说明 支持 i18n 错误提示支持 i18N 支持英文的单词纠错 可 ...
- es6 和 python 语法比较
http://www.linchaoqun.com/html/cms/content.jsp?id=1509528630774 Python3笔记:Python与ECMAScript部分语法对比 ht ...
- matlab-画个拱桥和倒影?
matlab可用于各行各业的应用中,现在我们就简单画一个拱桥试一试. r=input('请输入半径: '); z=input('请输入弧度: '); figure() %r=4; %画拱洞,用李萨如图 ...
- Unable to compile class for JSP 的可能原因
浏览器访问web jsp文件,导致500-Unable to compile class for JSP 的原因. 原因一:查看网上的方法,说很可能的原因是tomcat版本比JDK的版本要低导致的.所 ...
- django 之 ContentType的使用
1. ContentType 是干什么用的呢: 1. ContentType: 主要的作用就是Django orm的创建表的时候,可以方便多表查询使用,简化多表查询的过程 2.ContentType ...
- mysql查询正在执行的sql
mysql> SHOW VARIABLES LIKE "general_log%"; +------------------+------------------------ ...
- Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图(转载)
Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea ...
- 2018-2019-2 20175213实验一 《Java开发环境的熟悉》实验报告
第一部分实验要求:1 建立“自己学号exp1”的目录2 在“自己学号exp1”目录下建立src,bin等目录3 javac,java的执行在“自己学号exp1”目录4 提交 Linux或Window或 ...
- CSS属性相关
·一.宽和高 width属性可以为元素设置宽度. height属性可以为元素设置高度. 块级标签才能设置宽度,内联标签的宽度由内容来决定. 二.字体属性 1.文字字体 font-family可以把多个 ...