在线QQ客服:1922638
专业的SQL Server、MySQL数据库同步软件
\本部分的原始计划是编辑和删除用户信息。在案例开发过程中,发现首先读取数据列表,然后删除或修改列表中的数据更为合理。 ,首先研究数据分页查询,然后编辑和删除数据。
数据查询
\ 我们的数据实际上存储在MySql数据库的一个表中,使用SQL查询的结果如下所示:
\ 但是我们不能要求所有系统用户都编写T-SQL直接操作数据表,因为便利性和安全性很差。人们喜欢通过该界面进行操作,并且只需单击几下鼠标即可管理数据。
\ 我们需要首先从数据库中取出数据,让用户清楚地看到每个记录的内容,并对数据执行基本操作(添加/删除/修改)。
数据查询期间的系统处理流程:
\ MySql负责存储数据,PHP负责将数据从数据库中取出,HTML前端负责数据显示。
\
数据管理期间的系统处理流程:
\ 用户在HTML前端进行操作,PHP根据相应的操作对MySql数据表进行操作,并将处理结果反馈给前端的用户。
\ 处理完数据查询后,使用指定的模板处理数据,然后按如下所示显示它:
“
\
数据分页
\ 在我们的数据量很小或用户数量少的情况下,系统查询数据分页和非分页之间的区别不是很明显。但是,在多用户且数据量巨大的情况下,必须进行分页,可以有效地减轻业务负担,提高用户侧的数据响应速度。
1.减少服务器负载
\ 假设我们有一个表A,其数据量为10,000个项目,并发用户100个。用户登录系统时,所有用户同时请求主页上使用的A表数据,这将导致并发请求。此时,针对服务器的单个请求的数据量为10,000 * 100,即100万。大量并发请求将不可避免地消耗过多的服务器资源。
\ 假设我们进行了分页处理,则每次用户登录到首页时,我们只获取首页的前10个数据。当用户执行翻页操作时,他在另一个页面上重新请求10条记录。此时,即使相同的100个人发出数据请求,每次向服务器的数据请求量也仅为100 * 10,也就是1000。
经过简单的比较,您可以发现数据分页可以大大减少服务器负载。
\
2.改善用户的数据响应
\ 当未分页数据时,PHP需要在请求A表中的所有记录之后处理所有数据,并为数据设置HTML模板。此时,数据遍历相对昂贵。如果数据量和网络带宽不高,用户登录后会缓慢加载数据,严重影响用户体验。
\ 使用数据分页可以改善此问题。每个请求仅请求少量数据,并且从请求到呈现的整个数据过程非常流畅。
\
案例关键代码分析
\ 用户管理列表执行数据分页操作。默认情况下,每页显示5个数据,并且最初加载第一页的数据。 js分页数据请求如下:
//js分页数据请求方法
//page表示页面
//pagesize表示每页显示几条记录
函数PageInitForGetUser(页面,页面大小){
$.ajax({
网址:" action/GetAllUser.php",
dataType:" json",
异步:是的,
数据:{
页面:
页面大小:pagesize
},
类型:" POST",//请求方法
成功:功能(要求){
HtmlStr ="";
if(req.length \ gt; 0){
对于(var i = 0; i \\ = req.length-1; i ++){
HtmlStr + =" \\ tr \\ t00" + req [i].id +" \ lt;/td \ gt; \ lt; td \ gt; \ lt; u style =" cursor:指针" onclick =" Show(" + req [i ].Id +")" \\"> + req [i].username +" \ lt;/u \ gt; \ lt;/td \ gt; \ lt; td \ gt; " + req [i]。密码+" \\/td \ gt; \\ + req [i].sex +" \ lt;/td \ gt; \\ \ lt;/a> \ lt;/td> \ lt;/tr> ";
}
$("#UserTB")。 HTML(HtmlStr);
}
},
错误:功能(){
警报("数据接口请求错误!");
}
});
}
PHP分页数据请求如下:
\ lt ;?的PHP
标头("内容类型:文本/html;字符集= utf-8");
包括" https://www.cnblogs.com/soulsjie/com/DBHelper.php";
$ DB =新的DBHelper();
$ page = $ _ POST [" page"];
$ pagesize = $ _ POST [" pagesize"];
$ Resoult = $ DB-\\ u> PageQuerySQL("从sys_user中选择*,其中user_type ="普通用户"按ID desc排序",$ page,$ pagesize);
回声$ Resoult;
? \ gt;
初始化前端分页控件:
$("。zxf_pagediv")。 createPage({
pageNum:Math.ceil(TOTAL/PAGESIZE),//总记录/每页显示=总页数
当前:1,//当前页码
backfun:函数(e){
PageInitForGetUser(e.current,PAGESIZE);//回调函数,根据页面数和页面大小重新获取
}
});
\
正在关注
下次更新:php + MySQL实战案例[7]数据编辑和删除。
\
\
\微信公众号同步更新。