【PHP开发工程师系统性教学】——thinkPHP的分页操作,不管有几页,用这个你想分几页就分几页

news2024/12/24 0:03:50

在这里插入图片描述


👨‍💻个人主页:@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏:PHP程序开发


分页操作

请添加图片描述

请添加图片描述

文章目录

    • 前言
    • 🎶thinkPHP的分页操作是如何实现的?
        • 结束语🥇


前言

  分页操作在 web 开发中是一项常见而重要的任务,特别是在处理大量数据时。它允许用户分段地浏览数据,以避免一次性加载大量内容而导致页面加载缓慢或者浏览不便。在 PHP 中,使用分页操作可以轻松地将数据分割成多个页面,并且为用户提供导航功能,使其能够方便地浏览和导航不同页面的数据。

  在实现分页操作时,一般需要考虑以下几个方面:

1.数据查询与分页逻辑:首先,需要确定如何从数据库或其他数据源中查询数据,并且将其分割成多个页面所需的数据块。这可能涉及到数据库查询语句中的 LIMIT 和 OFFSET 等关键字的使用,以及计算总页数等逻辑。

2.分页导航的呈现:其次,需要在页面上呈现分页导航控件,如页码链接、上一页和下一页按钮等,以便用户可以方便地切换不同的页面。这通常需要根据当前页面和总页数等信息来动态生成。

3.用户交互与数据展示:另外,需要考虑用户与分页导航的交互方式,如何处理用户点击页面链接或按钮时的响应,以及如何将对应页面的数据呈现给用户。这可能涉及到前端 JavaScript 的使用,以及后端 PHP 与前端的数据交互。

4.性能优化与数据量控制:最后,需要考虑分页操作的性能优化和对大量数据的处理。这包括如何优化数据库查询、减少数据传输量、缓存机制的使用等,以确保页面加载速度和系统性能。


🎶thinkPHP的分页操作是如何实现的?


在 ThinkPHP 中,实现分页操作通常使用框架提供的分页类(\think\paginator\Paginator),该类封装了分页相关的逻辑,使得实现分页功能变得简单而便捷。以下是使用 ThinkPHP 实现分页操作的一般步骤:

步骤一:在控制器中进行数据查询和分页操作
  1.查询数据:在控制器中,首先进行数据查询操作,通常使用模型进行数据库查询,获取需要进行分页的数据集合。
  limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多。ThinkPHP的limit方法可以兼容所有的数据库驱动类的。

public function home()
	{
		$list = News::paginate(2);
		$this->assign('list', $list);
	    // 渲染模板输出
		return $this->fetch('home');
	}
	

  1.其中$list表示的是 查询所有数据 并且每页显示的数据 ,News::paginate(2);则代表查询所有的数据,并每页显示2条数据。对paginate里面的数据进行修改就能够实现查询到的所有数据,并显示多少条数据。
  2. $this->assign(‘list’, $list);它的作用是把分页数据赋值给模板变量list。
  3.return $this->fetch(‘home’); 渲染模板输出

view视图层的代码,将list的数据在视图层通过循环逐个的获取展示;

  <thead>
	    <tr>
	      <th>新闻名</th>
	      <th>图片</th>
	      <th>内容</th>
		  <th>操作</th>
	    </tr> 
	  </thead>
	  <tbody>
		  {volist name='list' id='news'}
			 <tr>
			   <td>{$news.title}</td>
			   <td>{$news.img}</td>
			   <td>{$news.content}</td>
			   <td><a class="layui-btn" href="delNews?id={$news.Id}">删除</a> &nbsp;<button class="layui-btn" data-cid={$news.Id} id="form-button">修改</button></td>
			
			 </tr>
		  {/volist}
	  </tbody>
	  	

	</table>
{$list->render()}

切记不要把{$list->render()}所丢失,它有着显示一个数组的过滤的作用。

如果需要有着更好的样式展现在甲方的面前,可以试着使用以下的样式:

<style>
       .pagination {
           display: inline-block;
           padding-left: 0;
           margin: 20px 0;
           border-radius: 4px;
       }
    
       .pagination > li {
           display: inline;
       }
    
       .pagination > li:first-child > span {
           margin-left: 0;
           border-top-left-radius: 4px;
           border-bottom-left-radius: 4px;
       }
    
       .pagination > li > a, .pagination > li > span {
           background-color: #FFF;
           border: 1px solid #DDD;
           float: left;
           line-height: 1.42857;
           margin-left: -1px;
           padding: 6px 18px;
           position: relative;
           text-decoration: none;
           color:#23527c;
       }
    
       .pagination > li.active span {
           background-color: #009688 !important;
           border-color: #DDD;
           cursor: default;
           z-index: 2;
       }
    
       .pagination > li > a:hover {
           background-color: #eee;
       }
    
       .pagination > .disabled > span, .pagination > .disabled > span:focus, .pagination > .disabled > span:hover {
           cursor: not-allowed;
           background-color: #fff;
           border-color: #ddd;
       }
   </style>

运行结果展示图如下:
在这里插入图片描述

结束语🥇

以上就是PHP程序设计
持续更新PHP程序设计教程,欢迎大家订阅系列专栏🔥PHP程序开发你们的支持就是曼亿点创作的动力💖💖💖
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1821158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【单片机毕业设计选题24005】-基于STM32的智能家居环境监测系统

系统功能: 此设计采用STM32单片机将采集到的环境环境温湿度,光照强度,火焰传感器状态,烟雾值,空气质量值等数据显示在OLED上&#xff0c;并将这些信息通过上报至手机APP。系统可通过手机蓝牙APP修改各传感器阈值. 蓝牙连接后&#xff0c;如果系统处于自动状态则每隔5秒钟上报…

多表联查小情景例子

这里有个需求&#xff1a; 需要给定套餐表setmeal 的 id 查询这个套餐内的所有菜品 dish 实际上如果可能&#xff0c;只需要查询套餐菜品表(setmeal_dish)&#xff0c;查看一个套餐内包含包含的所有菜品&#xff0c;然后把这些菜品全部取出即可。 看一下setmeal_dish 表&…

水泥行业超低排放简介

在当今社会&#xff0c;随着环保意识的不断提高&#xff0c;水泥行业作为重要的工业领域&#xff0c;其超低排放的实施范围及成效日益受到人们的关注。朗观视觉小编将从多个角度探讨水泥行业超低排放的实施范围&#xff0c;分析其背后的意义与影响&#xff0c;展望未来的发展趋…

LogicFlow 学习笔记—7. LogicFlow 基础 背景 Background

背景 Background 提供可以修改画布背景的方法&#xff0c;包括背景颜色或背景图片&#xff0c;背景层位于画布的最底层。 info 创建画布时&#xff0c;通过 background 选项来设置画布的背景层样式&#xff0c;支持透传任何样式属性到背景层。默认值为 false 表示没有背景。 …

Adaboost集成学习 | Matlab实现基于CNN-LSTM-Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料 效果一览 基本介绍 Adaboost集成学习 | Matlab实现基于CNN-LSTM-Adaboost集成学习时间序列预测&#xff08;股票价格预测&#xff09; 模型设计 融合Adaboost的CNN-LSTM模型的时间序列预测&#xff0c;下面是一个基本的框架。 …

软件性能测试基本概述

大家好&#xff0c;在性能测试的世界里&#xff0c;确保软件系统的高效运行至关重要。性能测试不仅仅是为了评估软件系统的性能&#xff0c;更是为了保障用户体验、提高系统稳定性和可靠性。本文将带您一览性能测试的基本概述&#xff0c;从性能测试的定义、重要性&#xff0c;…

【踩坑】修复Ubuntu远程桌面忽然无法Ctrl C/V复制粘贴及黑屏

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 说在前面&#xff1a; 需要注意的是&#xff0c;我发现他应该是新开了一个窗口给我。我之前打开的东西&#xff0c;在这个新窗口里都没有了&#xff0c…

【2024最新精简版】Redis面试篇

文章目录 什么是红锁Redis有哪些框架&#xff1f;你们项目中哪里用到了Redis ?Redis的常用数据类型有哪些 ?Redis的数据持久化策略有哪些 ?Redis的数据过期策略有哪些 ?Redis的数据淘汰策略有哪些 ?你们使用Redis是单点还是集群 ? 哪种集群 ?Redis集群有哪些方案, 知道嘛…

DockerCompose+Jenkins+Pipeline流水线打包Vue项目(解压安装配置Node)入门

场景 DockerComposeJenkinsPipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门&#xff1a; DockerComposeJenkinsPipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门-CSDN博客 以上使用流水线配置和打包springboot后台项目&#xff0c;如果要使…

二手物品交易系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;商家管理&#xff0c;用户管理&#xff0c;商品管理&#xff0c;用户咨询管理 商家账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;商品管理&#xff0c;用…

MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)

目录 前言1. 授予权限2. 撤销权限3. 查询权限4. Demo 前言 公司内部的数据库权限一般针对不同人员有不同的权限分配&#xff0c;而不都统一给一个root权限 1. 授予权限 授予用户权限的基本命令是GRANT 可以授予的权限种类很多&#xff0c;涵盖从数据库和表级别到列和存储过…

【抽代复习笔记】19-群(十三):奇偶置换、循环置换的几个定理及例题

定义&#xff1a; ①在Sn中&#xff0c;能够表示为奇数多个对换乘积的置换称为“奇置换”&#xff0c;能够表示为偶数多个对换乘积的置换称为“偶置换”&#xff1b; ②所有偶置换的集合记为An。 例1&#xff1a;&#xff08;1&#xff09;计算S1和S2中奇、偶置换的数目&…

HTML初体验

可参考jd.com官网&#xff0c;ctrlu查看当前页面源代码 找到你的项目&#xff0c;在项目中创建html类型的网页文件 标准的HTML正确书写格式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title&…

UNIAPP-ADB无线调试

ADB下载 SDK 平台工具版本说明 | Android Studio | Android Developers (google.cn) 环境变量配置 ADB版本查看 adb version 手机使用数据线连接到电脑 手机需要授权adb调试(开发人员选项里面) CMD输入命令 adb tcpip 5555 到了这一步你手机已经启动了adb服务了&…

Linux DNS域名解析

DNS系统的作用及类型 整个 Internet 大家庭中连接了数以亿计的服务器、个人主机&#xff0c;其中大部分的网站、邮件等服务器都使用了域名形式的地址&#xff0c;如www.google.com、mail.163.com 等。很显然这种地址形式要比使用 64.233.189.147、202.108.33.74的IP地址形式更…

蚂蚁分类信息系统二开仿么么街货源客模板微商货源网源码(带手机版)

源码介绍 网站采用蚂蚁分类信息系统二次开发&#xff0c;模板仿么么街货源客模板&#xff0c;微商货源网定制版。 模板设计风格简洁&#xff0c;分类信息采用列表形式发布&#xff0c;这种设计方式非常符合度娘 SEO 规则。收录效果是杠杠的。 这个网站风格目前是用来做货源推…

QT基础-简介,安装(6.7.1编译)

目录 QT简介 一.QT编译 国内镜像网站 1. For windows a.下载:qt-everywhere-src-6.7.1.zip b.下载Cmake c.下载python d.查看readme.md e. x64 native Tools cd 到 源码目录 f.输入 g. 然后输入 ​编辑 h.最后输入 1.2. qt-creator 1.3. 配置编译 2. For Ubu…

了解TF-IDF:一种文本分析的强大工具

了解TF-IDF&#xff1a;一种文本分析的强大工具 在现代信息时代&#xff0c;海量的文本数据充斥着我们的生活。如何有效地从这些文本数据中提取有价值的信息成为了一个关键问题。TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;作为一种经典的文本分…

Python酷库之旅-比翼双飞情侣库(05)

目录 一、xlrd库的由来 二、xlrd库优缺点 1、优点 1-1、支持多种Excel文件格式 1-2、高效性 1-3、开源性 1-4、简单易用 1-5、良好的兼容性 2、缺点 2-1、对.xlsx格式支持有限 2-2、功能相对单一 2-3、更新和维护频率低 2-4、依赖外部资源 三、xlrd库的版本说明 …

Jmeter接口请求之 :multipart/form-data 参数请求

参考教程 Jmeter压测之&#xff1a;multipart/form-data_jmeter form-data-CSDN博客 1、通过fiddler对接口进行抓取&#xff0c;接口信息如下图所示 2、获取到接口后 在fiddler右侧点击Inspectors-Raw中可以看到如下图所示信息&#xff0c;上半部分为默认请求头信息内容&#…