PHP MySQL 最接近邮政编码

标签 php mysql store postal-code

您好,我发现这篇文章很有帮助,但不幸的是我无法让它发挥作用。

http://davidsimpson.me/2008/09/28/find-nearest-store-page-using-php-mysql-and-google-maps/

我在 MySQL 表中有一个商店列表,其中包含邮政编码、经度、纬度和各种其他商店特定信息。

我希望用户能够在表单上输入他们的邮政编码,指定以英里为单位的最大距离(即下拉菜单,10 英里内,20 英里内等),然后提取结果按 MySQL 数据库的顺序排列。

有人可以解释一下吗?

问候

最佳答案

虽然该示例中提供的方法可以发挥作用,但它必须计算表中每一行的距离。当大规模工作时,这效率太低了。看看this tutorial 。它使用MySQL中的特殊数据类型作为坐标,并且可以非常快速地搜索。希望它能为您提供从哪里开始的基础。

您的解决方案可能更加简单。它将需要所有邮政编码的列表以及所有商店的列表。由于所有输入和输出都是已知因素,因此您可以将其预先计算到“缓存”表中,这将为您提供非常快速的结果。创建一个名为 StoreDistances10Miles 的表(猜测数据类型和命名约定):

postcode CHAR(8) INDEXED, store_id INT(8), metresAway INT(8)

迭代每个邮政编码,按距离对商店进行排序,并将 10 英里以内的商店保存到表中。现在,当您想按邮政编码搜索时,只需按邮政编码搜索 StoreDistances10Miles 即可获得列表。确保您索引了邮政编码

您需要为您想要在网站上提供的每个距离重新生成一个表格。

关于PHP MySQL 最接近邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285710/

相关文章:

php - 在 PHP 文件上传期间检查帖子属性

java - 如何在应用程序级别管理只读数据库连接

php - 在特定时间更改数据库字段

c++ - 如何在同一列表中存储指向任意类类型的方法指针?

java - 如何查找特定项目的存储位置 | eclipse

windows - Windows 证书存储的 Linux 等效项

php - Laravel 迁移 - 创建时间戳时出现问题

php_excel07-如何根据单元格的内容固定最小高度和 mak 以增加高度

javascript - 如何使用脚本和 HTML 从富文本编辑器获取包括 HTML 在内的数据

mysql - 同一张表上的SQL嵌套查询