php mysql layui分页_php+MySQL实战案例【六】数据分页查询

原计划本节学习的是编辑和删除用户信息,在案例开发过程中发现先把数据列表读取出来,再对列表的数据进行删除或修改更为合理,所以调整下学习顺序,先进行数据分页查询的学习,再对数据进行编辑和删除。

数据查询

我们的数据实际是存储在MySql数据库中的某个表中,用sql查询的结果如下图所示:

685051ab5a120992148028cb98587fcc.png

但我们不可能要求所有系统使用人员都可以写T-SQL直接操作数据表,因为便捷性和安全性都很差。人们更想通过界面操作,点几下鼠标就能对数据进行管理。

我们需要先把数据从数据库中取出来,让用户清楚看的每条记录的内容,并对数据进行基本操作(增/删/改)。

数据查询时系统处理流程:

MySql负责存储数据、PHP负责把数据从数据库取出来、html前端负责数据展示。

数据管理时系统处理流程:

用户在html前端作出操作、PHP根据相应的操作去操作MySql数据表、将处理结果在前端反馈给用户。

在我们处理完数据查询,把数据用指定的模板处理之后再展示的样子如下:

38d8c22010e6ccd13c3d10d4d5327241.png

数据分页

在我们数据量很少或者用户量很少的情况下,系统查询数据分页和不分页的差别不是很明显。但是在多用户、庞大的数据量下分页是必要的,可以有效降低服务的负载,提高用户端的数据响应速度。

1.降低服务器负载

假设我们有表A数据量为1万条,并发用户有100人。用户在登录系统时所有用户同时请求首页所用到的A表数据时就会造成并发请求。此时对服务器来说单次请求的数据量是1万*100也就是100万。并发的大量的请求势必会过度消耗服务器的资源。

假设我们有分页处理,用户每次登录首页,我们只取第一页前10条数据。当用户进行翻页操作时再重新请求另外某页的10条记录。此时就算同样是100个人进行数据请求,每次对服务器的数据请求量只有100*10也就是1000。

经过简单的对比可以发现数据分页能够大幅度降低服务器负载。

2.提高用户端的数据响应

在不进行数据分页时,PHP请求到A表中的所有记录之后,需要处理这些数据,给数据套html模板。此时数据遍历比较费,如果数据量且网络带宽不高时,用户在登录之后数据加载很慢严重影响用户使用体验。

使用数据分页能够改善这个问题,每次请求都只请求少量数据,数据从请求到渲染显示的整个过程都很流畅。

案例关键代码分析

用户管理列表进行数据分页操作,默认每页显示5条数据,初始加载第一页的数据。js分页数据请求如下:

//js分页数据请求方法

//page 表示第几页

//pagesize 表示每页显示几条记录

function PageInitForGetUser (page,pagesize) {

$.ajax({

url: "action/GetAllUser.php",

dataType: "json",

async: true,

data:{

page:page,

pagesize:pagesize

},

type: "POST", //请求方式

success: function (req) {

HtmlStr="";

if (req.length>0) {

for (var i = 0; i <=req.length - 1; i++) {

HtmlStr+='

'+req[i].Id+' '+req[i].username+''+req[i].password+''+req[i].sex+''+req[i].phone_number+''+req[i].email+''+req[i].address+' '+req[i].create_time+' ';

}

$("#UserTB").html(HtmlStr);

}

},

error: function () {

alert("数据接口请求错误!");

}

});

}

00290ac24b54a654768499291897138d.gif

PHP分页数据请求如下:

header("Content-Type: text/html;charset=utf-8");

include '../com/DBHelper.php';

$DB=New DBHelper();

$page=$_POST["page"];

$pagesize=$_POST["pagesize"];

$Resoult=$DB->PageQuerySQL("select * from sys_user where user_type='普通用户' order by Id desc",$page,$pagesize);

echo $Resoult;

?>

00290ac24b54a654768499291897138d.gif

前端分页控件初始化:

$(".zxf_pagediv").createPage({

pageNum: Math.ceil(TOTAL/PAGESIZE),//总记录/每页显示数=总页数

current: 1,//当前页数

backfun: function(e) {

PageInitForGetUser(e.current,PAGESIZE);//回调函数,根据页数和页大小重新取数

}

});

00290ac24b54a654768499291897138d.gif

后续

下期更新:php+MySQL实战案例【七】数据编辑、删除。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现业务员提成和客户对账,基于ThinkPHP5.1+Mysql+Layui。模块:商品,用户,客户,台账明细,台账审核,日志,角色权限,区域分类 MySQL 是一款广受欢迎的开源关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于美国甲骨文公司(Oracle)。自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用程序、企业级解决方案以及其他各种数据处理场景的首选数据库平台之一。 以下是对MySQL数据库的详细介绍: 核心特性与优势 开源与跨平台 MySQL遵循GPL开源协议,这意味着任何人都可以免费下载、使用和修改其源代码。这种开放性促进了广泛的社区支持和第三方插件、工具的发展。此外,MySQL支持多种操作系统,包括Windows、Linux、macOS、Solaris等,确保了其在不同环境下的兼容性和部署灵活性。 关系型模型与SQL支持 MySQL基于关系型数据库模型,数据以表格形式组织,并通过预定义的键(如主键、外键)在表之间建立关联。它完全支持结构化查询语言(SQL),允许用户进行数据查询、插入、更新、删除、创建和管理数据库结构等操作。SQL标准的广泛支持使得MySQL易于学习,且与其他关系型数据库系统有良好的互操作性。 存储引擎 MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每种引擎都有特定的优势和适用场景。例如,InnoDB提供事务安全、行级锁定和外键约束,适合处理高并发事务性的应用;MyISAM则更侧重于读取密集型操作,提供全文索引支持,适用于读多写少的场景。这种多引擎架构使得MySQL能够适应不同业务需求,提供高度定制化的存储解决方案。 性能与可扩展性 MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发访问的需求。 安全性与管理工具 MySQL提供了一系列安全措施,如用户账户管理、访问权限控制、SSL/TLS加密连接、审计日志等功能,确保数据的安全性和合规性。同时,MySQL附带了一系列管理工具,如MySQL Server、MySQL Workbench、MySQL Shell等,便于用户进行数据库配置、监控、备份、恢复、迁移等工作。 社区与生态系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值