为了账号安全,请及时绑定邮箱和手机立即绑定

PHP分页排序问题

PHP分页排序问题

PHP
眼眸繁星 2019-03-17 17:02:25
因为有分页功能,排序就出了问题了,最多只能排序第一页,翻页后,列表无法继续排序。请问有什么好方法可以解决先排序后翻页呢? 我是按获取当前位置与数据库经纬度计算后获得距离后,按最近的距离进行由近到远排序的,最多只能排序第一页,第二页是乱的。 如下: 第一页内容 列表1 距离:1.5km 列表2 距离: 2.5km... 翻页后,第二页内容 列表3 距离:5.5km 列表4 距离:1.2km 列表5 距离:7.2km 想要实现的效果如下 第一页内容 列表1 距离:1.2km 列表2 距离:1.5km... 翻页后,第二页内容 列表3 距离:2.5km 列表4 距离:5.2km 列表5 距离:7.2km 在第一页就把所有最近距离排序好,翻页后接着上一页继续排序。请问该怎么做呢?非常感谢!~
查看完整描述

4 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

数据是从哪里来的,如果从数据库,可以使用sql中的order by关键字,如果是从搜索引擎里面数据,也都应当有相应的排序功能,一般的数据排序都不用php做的,

查看完整回答
反对 回复 2019-03-18
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

分页的时候同样加过滤条件的呀,或者你可以把数据都取出来,先排序,然后按分页切割数组,如果实时性要求不高,可以做redis缓存一下

查看完整回答
反对 回复 2019-03-18
?
繁花如伊

TA贡献2012条经验 获得超12个赞

首先,你通过计算得到一个计算之后的距离数组.然后通过usort(),根据数组中的距离字段进行排序,在根据你的page和pagesize分割数组,array_slice()。就可以实现了。或者你之前返回整个排序之后的数组到前端,用js进行数组分割操作也是可以的。

查看完整回答
反对 回复 2019-03-18
?
互换的青春

TA贡献1797条经验 获得超6个赞

从数据库取数据的话:
举个栗子:每页10条数据,用距离倒序排列

第一页
select * from tableName where country='china' order by [距离] desc limit 0, 10;
第二页
select * from tableName where country='china' order by [距离] desc limit 10, 10;

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 711 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信