1 <?php2 /**3 * PHP+Mysql实现分页4 * **/

5 ?>

6

7

8

9

10

11

12 /**/

13 body{14 font-size:12px;FONT-FAMILY:verdana;width:100%;15 }16 /**/

17 div.page{18 text-align:center;19 }20 /**/

21 div.page a{22 border :#aaaadd 1px solid;text-decoration:none;padding:2px 5px 2px 5px;margin:2px;

23 }24 /**/

25 div.page span.current{26 border:#000099 1px solid;background-color:#000099;padding:4px 6px 4px 6px;margin:2px;color:#fff;

27 font-weight:bold;28 }29 /**/

30 div.page span.disable{31 border:#eee 1px solid;padding:2px 5px 2px 5px;margin:2px;color:#ddd;

32 }33 /**/

34 div.page form{35 display:inline;36 }37 /**/

38 div.content{39 height:300px;40 }41

42

43

44 <?php45 /*echo "

";46 print_r($_SERVER);*/

47 /**1、传入页码**/

48 $page = $_GET['p'];//用GET方法得到页码

49 /**2、根据页码取出数据:php->mysql的处理**/

50 //配置项

51 $host = "localhost"; //数据库地址

52 $username = "root"; //登录用户名

53 $password = ""; //密码

54 $db = "test"; //所用数据库

55 $pageSize = 10; //每一页的内容数量

56 $showPage = 5; //能直接显示的页码数量57 //连接数据库

58 $conn = mysql_connect($host,$username,$password);59 if(!$conn){60 echo "数据库连接失败";61 }62 //选择数据库

63 mysql_select_db($db);64 //设置编码格式

65 mysql_query("SET NAMES UTF8");66 //编写sql获取分页数据select *from 表名 limit 起始位置,显示条数

67 $sql = "SELECT * FROM page LIMIT ".(($page - 1) * $pageSize).", $pageSize";68

69 //执行sql语句后得到资源句柄

70 $result = mysql_query($sql);71 //var_dump($result);72

73 //为一个div块,放置网页内容

74 echo "

";75 echo "

ID NAME

78 while($row = mysql_fetch_assoc($result)){79 echo "

";80 echo "{$row['id']}";81 echo "{$row['name']}";82 echo "";83 }84 echo "";85 echo "

";86

87 //释放结果,关闭连接

88 mysql_free_result($result);89 //获取数据总数

90 $total_sql = "SELECT COUNT(*) FROM page";91 $total_result = mysql_fetch_array(mysql_query($total_sql));92 $total = $total_result[0];93 //计算出总的页码数

94 $total_pages = ceil($total/$pageSize);95

96 mysql_close($conn);97 /**3、显示数据 + 分页条 **/

98 //初始化分页条,并放入div块中

99 $page_banner = "

";100 //计算偏移量

101 $pageOffset = ($showPage - 1)/2; //根据显示页码数计算偏移量102

103 //如果在第一页则隐藏首页与上一页

104 if($page > 1){105 $page_banner .= "首页";106 $page_banner .= "";107 }else{108 $page_banner .= "首页";109 $page_banner .= "";110 }111

112 //初始化数据

113 $start = 1; //能够直接选定的页码的首位

114 $end = $total_pages; //能够直接选定的页码的末位115 //如果总页数大于显示的页数,进行隐藏,分两种情况

116 if($total_pages > $showPage) {117 //头部省略

118 if($page > $pageOffset + 1){119 $page_banner .= "...";120 }121

122 //分别讨论首末位页码的大小

123 if($page > $pageOffset){124 $start = $page - $pageOffset;125 //末尾页码需要分情况讨论

126 $end = $page + $pageOffset < $total_pages ? $page + $pageOffset : $total_pages;127 }else{128 $start = 1;129 $end = $total_pages > $showPage ? $showPage : $total_pages;130 }131 //当前页加上偏移量大于总页码的情况

132 if($page + $pageOffset > $total_pages){133 $start = $start - ($page + $pageOffset - $end);134 }135 }136

137 //显示页码连接

138 for($i = $start;$i <= $end;$i ++){139 if($page == $i){140 $page_banner .= "{$i}";141 }else{142 $page_banner .= "{$i}";143 }144 }145

146 //尾部省略

147 if($total_pages > $showPage && $page + $pageOffset < $total_pages){148 $page_banner .= "...";149 }150 //如果在最后一页则隐藏尾页与下一页

151 if($page < $total_pages){152 $page_banner .= "下一页>";153 $page_banner .= "尾页";154 }else{155 $page_banner .= "下一页>";156 $page_banner .= "尾页";157 }158

159 //跳转页码的实现

160 $page_banner .= "共{$total_pages}页,";161 $page_banner .= "

";162 $page_banner .= "到页";163 $page_banner .= "";164 $page_banner .= "

";165

166 //将分页条输出

167 echo $page_banner;168

169

170

171

172

173

174

175

176

177

178

179 ?>

180

181

php mysql 分组 分页_简单的PHP+Mysql实现分页相关推荐

  1. mysql级联删除_近百道MySQL面试题和答案(2020收藏版)(完结篇)

    7. 什么是死锁?怎么解决? 死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象. 常见的解决死锁的方法 1.如果不同程序会并发存取多个表,尽量约定以相同的顺序访 ...

  2. mysql query 优化_第 8 章 MySQL 数据库 Query 的优化

    前言: 在之前"影响 MySQL 应用系统性能的相关因素"一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 Query 语句的优化 ...

  3. jira mysql 启动 失败_重启机器导致mysql启动失败

    一.问题 二.常见解决方案 网上的解决方法大致为 ①空间不足(df -h 查看) ②权限不足(/var/lib文件夹)chown -R mysql:mysql /vdb1/lib/ ③修改my.cnf ...

  4. 二进制的mysql怎么装_使用二进制演示MySQL安装步骤

    使用二进制演示MySQL安装步骤 发布时间:2020-06-08 11:36:24 来源:51CTO 阅读:194 作者:三月 不知道大家之前对类似使用二进制演示MySQL安装步骤的文章有无了解,今天 ...

  5. centos mysql卸载重装_提高性能,MySQL 读写分离环境搭建

    MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举一个成功的例子,后面有时间再和大家分享下使用 Do ...

  6. java导出mysql数据库失败_利用Java进行MySql数据库的导入和导出

    利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令. MySql导出数据库的命令如下: mysqldump -uusername -ppassword  ...

  7. php mysql 云虚拟机_虚拟机+apache+php+mysql 环境安装配置

    虚拟机的安装:直接下一步即可,注意修改路径. 安装完成后新建虚拟机,直接下一步.如果选择镜像文件后出现错误,可以试着去修改电脑bios中的虚拟化设置,改为enable,如下图: apache安装: 1 ...

  8. mac mysql密码错误_解决mac 下mysql安装后root用户登录密码错误问题

    使用的mac OS 10.11  安装mysql后访问root/root用户失败,网上找了一些解决办法,下面记录下解决方法方便以后自己查询 概述(看懂下面就不用看了): 停服务:sudo /usr/l ...

  9. mysql架构组成_第 2 章 MySQL 架构组成

    麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...

最新文章

  1. union 中的注意事项
  2. mysql免安装版的问题
  3. scrapy下载中间件设置代理和useraget大全
  4. CTFshow 反序列化 web257
  5. Golang 1.14 发布 | 云原生生态周报 Vol. 39
  6. Android ListView侧滑item,仿QQ删除效果
  7. Web组件 – 构建商业化应用的基石
  8. 【月入百万】,资深股民恐怕都不知道
  9. 昨天做的事情和今天需要做的事情
  10. 想招到优秀的程序员?这些坑一定不要踩
  11. BestCoder Round #81 (div.2) B Matrix
  12. CTF加密题型解析:RSA算法的CTF解法之一
  13. 用java写一些有趣的特效_[Java教程]用JavaScript模拟Flash效果写的炫光波动特效
  14. 【SpringBoot_ANNOTATIONS】自动装配 02 @Resource @Inject
  15. 北京最最最牛的IT公司都在这了 。。。
  16. 微信应用(小程序)开发最全整理
  17. 微信小程序背景图真机显示不了
  18. 小学计算机集体听课评课,小学听课评课活动总结
  19. 【字节跳动】 https://job.bytedance.com/campus 内推码:MZ9BJHD 电话:13855119574 邮箱:yinxiang.stephen@bytedance.com
  20. VMware安装优麒麟20.04LTS

热门文章

  1. 【rzxt】windows7怎么设置桌面背景 如何快速道下一个背景
  2. Java中BigDecimal解决精度丢失问题
  3. django中collectstatic的使用(亲测)
  4. GitChat · 大数据 | 一步一步学习大数据:Hadoop 生态系统与场景
  5. TP6返回插入数据的自增ID
  6. Basic的Json与Xml
  7. 项目管理指标_企业信息化——项目管理
  8. python 装饰器分类_Python 装饰器(Decorators) 超详细分类实例
  9. java类方法不可见_使java方法仅对特定类可见
  10. python数组加入新元素_Python之list添加新元素、删除元素、替换元素