Home  >  Q&A  >  body text

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

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

阿神阿神2723 days ago343

reply all(5)I'll reply

  • 大家讲道理

    大家讲道理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); //取出数据, 不管是从一个大数据当中,还是从数据库里, 都差不多

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 16:52:55

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

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 16:52:55

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

    reply
    0
  • 黄舟

    黄舟2017-04-10 16:52:55

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

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 16:52:55

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

    reply
    0
  • Cancelreply