欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

jquery - php 如何操作数组分页?

程序员文章站 2022-04-20 19:02:06
...
新人。。公司有个php练手的项目。 现在出现了这样的问题:公司用的是QeePHP 比较老,然后公司项目基本上都是是使用框架的数据库查询,然后通过SQL的limit来限定 进行数据的分页筛选的。
因为我要的数据需要合并排序之类的。。 就把读取出来的数据全部保存在了一个大的数组里, 现在数据显示没有任何问题,同时还有搜索功能也完成了。 可以在网页上显示出所有的数据。但是分页功能没有做。希望大神提供一些思路。。 公司同事用了jQuery的方法和array_slice的方法 似乎可以基本上完成分页。。但不是特别理解。。不知道有没有什么比较好的方法。。
谢谢~

回复内容:

新人。。公司有个php练手的项目。 现在出现了这样的问题:公司用的是QeePHP 比较老,然后公司项目基本上都是是使用框架的数据库查询,然后通过SQL的limit来限定 进行数据的分页筛选的。
因为我要的数据需要合并排序之类的。。 就把读取出来的数据全部保存在了一个大的数组里, 现在数据显示没有任何问题,同时还有搜索功能也完成了。 可以在网页上显示出所有的数据。但是分页功能没有做。希望大神提供一些思路。。 公司同事用了jQuery的方法和array_slice的方法 似乎可以基本上完成分页。。但不是特别理解。。不知道有没有什么比较好的方法。。
谢谢~

分页有几个要素
define('PAGE_LENGTH', 15); //每页显示条数
$total_count = count($data_array); //数据条数
$total_pages = ceil($total_count / PAGE_LENGTH); //总页数
$current_page = $_GET['page']; //当前页数
$page_list = range(1, $total_pages); //页数列表, 当然如果只有1页或没有数据要判断一下

还有就是当页数据
$data = array_slice($data_array, ($current_page - 1) * PAGE_LENGTH, PAGE_LENGTH); //取出数据, 不管是从一个大数据当中,还是从数据库里, 都差不多

个人经验,分页一般是为了两点。1,界面显示优化 2,加载速度优化
如果是单纯的界面显示优化,这种很简单,建议使用开源的jquery插件,比如datatable来显示你的数据,使用ajax传值;
如果是第二种,一般对应数据量比较大的情况,比如企业报表,最好不要把数据全部取出来再做merge、rank操作,折让内存开销很大,用户体验很差。正确做法应该是按照排序字段 order by 从数据库load出page_size的少量数据,再做数据补全工作。

框架还是原生。
你的问题是问如何分页吗,手机打不了代码但你可以在百度搜个demo很简单的不要怕。

好多年前学php做了个分页,已经忘光了。

可以下载thinkphp源码,里面有个数据分页的类。可以参考一下

相关标签: php mysql jquery