php - 如何按距离对数据库中的php结果进行排序

标签 php mysql sorting

我有一个使用 PHP 搜索和显示的广告数据库。用户在搜索过程中输入邮政编码,然后执行查询。当结果页面返回给用户时,它会显示广告项目与其邮政编码的距离。

我需要知道的是如何按距离对结果进行排序。我可以通过对查询进行排序来对价格结果进行排序,但由于距离是在 php 页面上计算的,并且每个用户的距离都不同,所以我不知道如何排序。

距离是使用网格和毕达哥拉斯定理计算的。

不确定什么代码有用。如果您想查看任何内容,请告诉我。

谢谢

最佳答案

不要重新发明漏气的轮胎。您需要此任务的半正矢地理距离公式。看这里。

MySQL Great Circle Distance (Haversine formula)

计算出距离后,就可以很简单地按距离正确排序并限制搜索以提高效率。看这里。

Geolocation distance SQL from a cities table

关于php - 如何按距离对数据库中的php结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7717205/

相关文章:

php mysqli 数据统计和搜索功能不起作用

php - 在 MYSQL 中添加两行的值并将它们组合成一行

java - 如何在java中对一个数组列表进行排序并以相同的顺序设置另一个列表

php - PDO : Using a substring as criteria to get a row count

javascript - $_FILES 全局变量无法接收从 XMLHttpRequest() 发送的数据

mysql - 从 MS SQL 中的值更新 MySQL 数据库

c# - 如何根据 List<string> 字段数对 List<List<string>> 进行排序?

java - 合并排序算法有问题

php - laravel 5.4 动态数据库连接

mysql - 加入两个表并按 xyz 分组