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检索/ 百度外卖选择送货地址: 饿了么选择送货地 ...
随机推荐
- 使用NPM安装Vue项目
使用NPM安装Vue项目步骤如下: 一.先安装node.js,下载node.js安装包,node.js安装成功之后,左击电脑左下角>运行>输入cmd,如下图所示: 二.点击确定进入,分别在 ...
- (Python基础)简单购物车代码
以下是最简单,最基础的购物车代码,一起学习,一起参考.product_list = [ ('Iphone',5800), ('Mac Pro',15800), ('car',580000), ('co ...
- ubuntu远程windows桌面
最近把系统装成了ubuntu,需要远程windows ,就用到了ubuntu的 rdesktop工具 1.先打开终端输入 rdesktop 看系统是否安装了 rdesktop 如果没有安装需要 ...
- python-day3集合、文件读写、函数
@集合运算 s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中 ...
- Zabbix11.3 Zabbix SNMP 常用OID列表
点击获取CISCO设备OID 系统参数(1.3.6.1.2.1.1) OID 描述 备注 请求方式 .1.3.6.1.2.1.1.1.0 获取系统基本信息 SysDesc GET .1.3.6.1.2 ...
- 《用Python做HTTP接口测试》练习资料共享
原作者代码在https://github.com/akuing/python-http-interface-test
- MySQL sql_mode 说明(及处理一起 sql_mode 引发的问题)(转)
1. MySQL莫名变成了 Strict SQL Mode 最近测试组那边反应数据库部分写入失败,app层提示是插入成功,但表里面里面没有产生数据,而两个写入操作的另外一个表有数据.因为 insert ...
- 阿里云 RDS for MySQL 物理备份文件恢复到自建数据库
想把阿里云的Mysql 生成的RAS 文件.tar文件 恢复到本地自建mysql, 遇到的坑.希望帮助大家 阿里云提供的地址 https://help.aliyun.com/knowledge_det ...
- activiti官网实例项目activiti-explorer之扩展流程节点属性2
情景需求:需要查找activiti-explorer项目中获取流程id的方法,然后根据流程id获取相应字段在节点属性中添加内容. 大致流程:拿取整个流程id获取对应表单属性,在页面节点属性中展示对应表 ...
- 如何清空css 的默认边距
在网页开发中,html的元素,有部分元素默认是有内外边距的,例如body 元素,是有默认边距的 所以在通常情况下,我们都要先清空元素的内外边距:使用通配符选择器* 清空元素的内边距和外边距 ;; } ...