最接近邮政编码的PHP MySQL
您好,我发现这篇文章很有帮助,但不幸的是,我无法让它工作 我在MySQL表中有一个存储列表,其中包含邮政编码、经度、纬度和各种其他特定于存储的信息 我希望用户能够在表单上输入他们的邮政编码,以英里为单位指定最大距离(即下拉菜单,10英里以内,20英里以内等),然后从MySQL数据库中按顺序提取结果 有人能解释一下吗最接近邮政编码的PHP MySQL,php,mysql,store,postal-code,Php,Mysql,Store,Postal Code,您好,我发现这篇文章很有帮助,但不幸的是,我无法让它工作 我在MySQL表中有一个存储列表,其中包含邮政编码、经度、纬度和各种其他特定于存储的信息 我希望用户能够在表单上输入他们的邮政编码,以英里为单位指定最大距离(即下拉菜单,10英里以内,20英里以内等),然后从MySQL数据库中按顺序提取结果 有人能解释一下吗 关于他清楚地给出了如何获取英里数,因此,使用下拉列表只需将“让英里数
关于他清楚地给出了如何获取英里数,因此,使用下拉列表只需将“让英里数<{dropdownvalue}”添加到sql语句中即可。因此,如果你有10英里,那么它的英里数<10等等。当该示例中提供的方法起作用时,它必须计算表中每一行的距离。在大规模工作时,这简直太低效了。看一看。它使用MySQL中的特殊数据类型作为坐标,可以非常快速地搜索。希望它能给你一个从哪里开始的基础 您的解决方案可能更简单。它将需要一个所有邮政编码的列表和所有商店的列表。由于您的所有输入和输出都是已知的因素,您可以将其预先计算到“缓存”表中,这将为您提供非常快速的结果。创建一个名为StoreDistances10Miles的表(猜测数据类型和命名约定): 迭代每个邮政编码,按距离对商店进行排序,并将10英里内的商店保存到表中。现在,当你想按邮政编码搜索时,只需按邮政编码搜索StoreDistance10英里,你就会得到你的列表。确保索引
postcode
您需要为站点上提供的每个距离重新生成一个表。如果您查看初始SQL语句,它包含$longitude和$latitude,但这些PHP变量事先没有给出任何值。是我遗漏了什么,还是示例PHP代码不完整…?从他在顶部解释的公式中,我得到的印象是用户位置的经度和纬度。
postcode CHAR(8) INDEXED, store_id INT(8), metresAway INT(8)