新人。。公司有个php练手的项目。 现在出现了这样的问题:公司用的是QeePHP 比较老,然后公司项目基本上都是是使用框架的数据库查询,然后通过SQL的limit来限定 进行数据的分页筛选的。
因为我要的数据需要合并排序之类的。。 就把读取出来的数据全部保存在了一个大的数组里, 现在数据显示没有任何问题,同时还有搜索功能也完成了。 可以在网页上显示出所有的数据。但是分页功能没有做。希望大神提供一些思路。。 公司同事用了jQuery的方法和array_slice的方法 似乎可以基本上完成分页。。但不是特别理解。。不知道有没有什么比较好的方法。。
谢谢~
大家讲道理2017-04-10 16:52:55
分页有几个要素
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); //取出数据, 不管是从一个大数据当中,还是从数据库里, 都差不多
伊谢尔伦2017-04-10 16:52:55
个人经验,分页一般是为了两点。1,界面显示优化 2,加载速度优化
如果是单纯的界面显示优化,这种很简单,建议使用开源的jquery插件,比如datatable来显示你的数据,使用ajax传值;
如果是第二种,一般对应数据量比较大的情况,比如企业报表,最好不要把数据全部取出来再做merge、rank操作,折让内存开销很大,用户体验很差。正确做法应该是按照排序字段 order by 从数据库load出page_size的少量数据,再做数据补全工作。