如何按距离从数据库中排序 php 结果
Posted
技术标签:
【中文标题】如何按距离从数据库中排序 php 结果【英文标题】:How to order php results from database by distance 【发布时间】:2011-10-10 18:46:56 【问题描述】:我有一个使用 php 搜索和显示的广告数据库。用户在搜索期间输入他们的邮政编码,然后执行查询。当结果页面返回给用户时,它会显示广告项目与其邮政编码的距离。
我需要知道的是如何按距离对结果进行排序。我可以通过对查询进行排序来对价格结果进行排序,但是因为距离是在 php 页面上计算的,并且对于每个用户都不同,所以我不知道如何排序。
使用网格和毕达哥拉斯定理计算距离。
不确定什么代码有用。如果你想看到任何只是让我知道。
谢谢
【问题讨论】:
是否可以提供有关表结构的更多信息以及基于什么?您正在计算距离,将有助于给出结果。 【参考方案1】:不要重新发明瘪胎。您需要此任务的半正弦地理距离公式。看这里。
mysql Great Circle Distance (Haversine formula)
一旦确定了距离,就可以轻松地按距离正确排序并限制搜索以提高效率。看这里。
Geolocation distance SQL from a cities table
【讨论】:
感谢您的回答。今天下午我会看看实施。干杯以上是关于如何按距离从数据库中排序 php 结果的主要内容,如果未能解决你的问题,请参考以下文章