Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于经纬度从mysql获取数据_Php_Mysql - Fatal编程技术网

Php 基于经纬度从mysql获取数据

Php 基于经纬度从mysql获取数据,php,mysql,Php,Mysql,我想从MySQL中提取基于用户选择的纬度和经度的数据。 例如,如果用户请求在加利福尼亚州登录,我想提取加利福尼亚州的一些登录,或者如果用户请求在AlisoViejo登录,我需要在AlisoViejo中获取登录。为此,我使用纬度和经度,请任何人告诉我如何实现这一点直接或间接(使用关系表)保留列表中每个记录的纬度和经度数据。然后使用类似以下内容(摘自): 选择一个。*, 圆形(sqrt( (太平洋纬度-'53.410778',2)*68.1*68.1+ (功率(纬度-'-2.97784',2)*53

我想从MySQL中提取基于用户选择的纬度和经度的数据。
例如,如果用户请求在加利福尼亚州登录,我想提取加利福尼亚州的一些登录,或者如果用户请求在AlisoViejo登录,我需要在AlisoViejo中获取登录。为此,我使用纬度和经度,请任何人告诉我如何实现这一点

直接或间接(使用关系表)保留列表中每个记录的纬度和经度数据。然后使用类似以下内容(摘自):

选择一个。*,
圆形(sqrt(
(太平洋纬度-'53.410778',2)*68.1*68.1+
(功率(纬度-'-2.97784',2)*53.1*53.1)
))作为距离
从广告
其中a.type_id=3
距离小于25的
限制0,30
或者使用MYSQL的地理空间功能:


您已经尝试了多远?我们对您的数据库、表、应用程序和所需的最终结果一无所知。请逐步描述您希望用户选择位置的确切方式以及希望显示的结果。我的数据库中存储了数千个列表。当用户选择一个州时,我需要携带该州的所有列表,或者如果用户选择城市,我需要携带该城市的所有列表,或者如果用户选择国家,我需要携带该国家的列表。交互的唯一方式是纬度/经度
SELECT a .* , 
    round( sqrt( 
        (POW(a.latitude -'53.410778', 2)* 68.1 * 68.1) + 
        (POW(a.latitude -'-2.97784', 2) * 53.1 * 53.1) 
     )) AS distance
FROM adverts a
     WHERE a.type_id = 3
     HAVING distance < 25
     LIMIT 0 , 30