请教,PHP 关于多重筛选结果分页的问题。

发布于 2022-09-06 11:18:20 字数 234 浏览 42 评论 0

最近正在写一个订单管理功能的模块,基于PHP 7.1的,在做订单列表筛选显示的时候,想做分页显示,不过现在感觉没什么思路,原因在于订单列表筛选的方式维度太多, 比如需要按照各种日期匹配,时间匹配,状态查询,货运信息查询,订单明细查询…… 不一一列举,所有筛选出来的结果都需要在中间的订单列表div里做展示,请问, 现这种情况, 不同筛选条件筛选出来的结果怎样在做分页显示代码写起来会比较少冗余呢? 以及点击下一页该执行的查询应当如何判定呢?
谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清秋悲枫 2022-09-13 11:18:20

这里就要安利下laravel框架的l5-repository插件的强大之处了。

后端

后端只需2行代码即可完成筛选功能(包括后期可能新增的筛选条件,后端都不用改)
图片描述

前端

前端加筛选条件只要定义好模型关系,想筛选什么字段就筛选什么字段(包括不是本表的字段),类似写法如下:
图片描述order_sn是当前表从order表冗余过来的,但是又提个需求想搜索order表的其他字段dealer_id(前期没有冗余进来),只要order.dealer_id即可,其中order为这两表之间的关系。

DB

他生成的sql语句类似:select count(*) as aggregate fromdistributor_commisionwhere (exists (select * fromorderwheredistributor_commision.order_sn=order.order_snanddealer_id= '111'))

是不是很方便,底层实现原理就是解析前端name值,然后在模型里加where条件,具体可看看他源码。

谎言月老 2022-09-13 11:18:20

第一个问题不太明晰。对于第二个问题,点击下一页后,前端通过js代码得到 筛选条件以及下一页对应的页码值,生成 筛选参数以及页码参数 通过 get请求或其他请求 来访问后台,后台通过附带的 筛选参数以及页码参数 拼接出select语句 进行下一页的查询(通过limit关键字实现分页的查询)。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文