我有一个分类广告网站。用户首先必须指定他们的“搜索区域”......
我想添加一个功能,用户也可以选中一个复选框,找到“关闭”所选“区域”的广告。
但我不知道如何以聪明的方式将这些区域“联系”或“联系”起来。我需要一些关于如何做到这一点的建议......
例如,如何在可以搜索分类广告的网站上完成“里程半径搜索”?
由于
BTW我使用PHP来查询MYSQL的结果。目前所有区域在字段中都有各自的名称(Nevada =表字段值中的Nevada)因此查询是通过获取下拉列表的值并在mysql表中搜索该值来完成的。
答案 0 :(得分:0)
您必须使用radius搜索脚本。您还需要一些县/市的数据库,其中包含城市/国家,学校,家庭等信息。
那里有很多半径搜索脚本,你需要谷歌搜索一下。
答案 1 :(得分:0)
以下链接专门针对Microsoft SQL Server编写,但我怀疑将其转换为MySQL并不太难。
答案 2 :(得分:0)
这是我们使用的那个。 Sql Server再次但很容易修改。
网上很多其他例子给出了狡猾的结果......
ALTER function [dbo].[udf_Haversine](@lat1 float, @long1 float, @lat2 float, @long2 float) returns float begin
declare @dlon float, @dlat float, @rlat1 float, @rlat2 float, @rlong1 float, @rlong2 float, @a float, @c float, @R float, @d float, @DtoR float
select @DtoR = 0.017453293
select @R = 3937 --3976
select
@rlat1 = @lat1 * @DtoR,
@rlong1 = @long1 * @DtoR,
@rlat2 = @lat2 * @DtoR,
@rlong2 = @long2 * @DtoR
select
@dlon = @rlong1 - @rlong2,
@dlat = @rlat1 - @rlat2
select @a = power(sin(@dlat/2), 2) + cos(@rlat1) * cos(@rlat2) * power(sin(@dlon/2), 2)
select @c = 2 * atn2(sqrt(@a), sqrt(1-@a))
select @d = @R * @c
return @d
end