如何用php实现分页效果
时间:2021-09-07
本文章向大家介绍如何用php实现分页效果,主要包括如何用php实现分页效果使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在一个网站中,分页是很常见的,可是怎样才能实现分页呢,今天为大家实现一下分页的效果
首先我们写分页前要知道两个很重要的地方,一个是数据库查询方式,一个是分页计算公式
数据库查询方式 select * from tableName limit num1,num2; 这是一个限定查询的语句,后面跟两个参数,num1为从第几个开始查找,num2为查找的信息的个数
从查询方式中 num1这个值怎么来呢, 这就用到分页的计算公式了, num1 = (当前页 - 1) * 每页显示的条数
实现分页前我们先在数据库里面准备一个表,并且插入数据,这些都是必需的前提工作了 (直接拷贝到数据库运行就行)
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL, `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = MyISAM AUTO_INCREMENT = 19 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic; INSERT INTO `test` VALUES (1, '测试1', '睡大觉'); INSERT INTO `test` VALUES (2, '测试1', '睡大觉'); INSERT INTO `test` VALUES (3, '测试1', '睡大觉'); INSERT INTO `test` VALUES (4, '测试1', '睡大觉'); INSERT INTO `test` VALUES (5, '测试1', '睡大觉'); INSERT INTO `test` VALUES (6, '测试1', '睡大觉'); INSERT INTO `test` VALUES (7, 'qwea', '睡大觉'); INSERT INTO `test` VALUES (8, 'zxcz', '睡大觉'); INSERT INTO `test` VALUES (9, 'qwe', '睡大觉'); INSERT INTO `test` VALUES (10, 'bcv', '睡大觉'); INSERT INTO `test` VALUES (11, 'rtyu', '睡大觉'); INSERT INTO `test` VALUES (12, 'xcvx', '睡大觉'); INSERT INTO `test` VALUES (13, '456', '睡大觉'); INSERT INTO `test` VALUES (14, 'eqwe456', '睡大觉'); INSERT INTO `test` VALUES (15, 'asd2', '睡大觉'); INSERT INTO `test` VALUES (16, '123', '睡大觉'); INSERT INTO `test` VALUES (17, 'rcvxtyu', '睡大觉'); INSERT INTO `test` VALUES (18, '2312asda', '睡大觉');
<?php //创建一个分页数据查询的方法 function getPageList($page,$pageSize){ // 创建连接 $conn = mysqli_connect('127.0.0.1', 'root', 'root', 'page'); $s = ($page - 1) * $pageSize; $sql = "SELECT * FROM test LIMIT {$s},{$pageSize}"; $sql1 = "SELECT count(*) as count FROM test"; $result = mysqli_query($conn, $sql); $result1 = mysqli_query($conn, $sql1); $data['table_count'] = $result1->fetch_assoc()['count']; $data['pageSize'] = $pageSize; $data['data'] = []; if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $data['data'][] = $row; } } mysqli_close($conn); return $data; } //创建一个处理分页的方法(这里我只实现 首页,上一页,下一页,尾页) function getPage($data){ //首先我们要先处理参数 $get = $_GET; $page = isset($get['page'])?$get['page']:1; //将其他的参数拼接起来,不需要分页页数 unset($get['page']); $url = http_build_query($get); $url = $url?$url.'&':'?'; $end_page = ceil($data['table_count'] / $data['pageSize']); $src = ''; //如果当前页数为1 那第一个跟首页不能点击 if($page == 1){ $src = "<a><span>首页</span></a> "; $src .= "<a><span>上一个</span></a> "; }else{ $src .= "<a href='?{$url}page=1'>首页</a> "; $pages = $page - 1; $src .= "<a href='?{$url}page={$pages}'>上一个</a> "; } //如果当前页是最后一页 那下一个跟尾页不能点击 if($page == $end_page){ $src .= "<a ><span>下一个</span></a> "; $src .= "<a><span>尾页</span></a> "; }else{ $pages = $page + 1; $src .= "<a href='?{$url}page={$pages}'>下一个</a> "; $src .= "<a href='?{$url}page={$end_page}'>尾页</a> "; } return $src; } $page = isset($_GET['page'])?$_GET['page']:1; $list = getPageList($page,5); $page = getPage($list); ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <table> <tr> <th>id</th> <th>name</th> </tr> <?php foreach($list['data'] as $v){ ?> <tr> <td><?php echo $v['id']; ?></td> <td><?php echo $v['name']; ?></td> </tr> <?php } ?> </table> <?php echo $page; ?> </body> </html>
原文地址:https://www.cnblogs.com/quan846951943/p/15237573.html
- 纯代码修改WordPress 默认 Gravatar 头像的方法
- 这些行业的饭碗要被机器人抢了 再不努力就被它们PK掉了!
- DeveWork.com 上线“前端工具箱”(附源码下载)
- Debug和Release之本质区别
- ArgoUML -- 开源UML 建模工具
- 性能分析工具-PerfView
- c#测试字符串是否为GUID的几种方法
- 编译错误CS1595
- 分享一款带尖角浮出 公告栏 样式
- 在asp.net页面上得到Castle容器的实例
- WordPress自带TinyMCE编辑器相关功能增强
- 联众互动收购3家棋牌游戏公司,其域名买自蔡文胜手中
- 未来有什么工作绝对不会被人工智能取代
- WordPress在RSS Feed 中输出版权信息
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 谈谈线程
- springboot整合定时框架-Elastic-job-lite
- hashMap的循环姿势你真的使用对了吗?
- SpringBoot整合常用技术
- SpringBoot整合Quartz实现定时任务(单任务、多任务)
- 你的登录接口,真的安全吗?如何预防黑客攻击
- JWT登录信息加密
- 我画了近百张图来理解红黑树
- SpringBoot之API--Swagger2接口文档管理
- 索引失效原理,终于有人讲明白了
- 你真了解你的系统吗?它要崩溃了
- 伸手党的容器镜像加固流程
- 前端模块化开发--React框架(四):高级应用(redux)
- Tomcat性能优化,学会薪水翻倍
- 前端模块化开发--React框架(三):应用进阶(react-router4&&antd框架)