Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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/8/mysql/59.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_Geocoding_Latitude Longitude_Google Latitude - Fatal编程技术网

Php 合并两个MySQL查询并获取两个邮政编码之间的距离

Php 合并两个MySQL查询并获取两个邮政编码之间的距离,php,mysql,geocoding,latitude-longitude,google-latitude,Php,Mysql,Geocoding,Latitude Longitude,Google Latitude,我想知道两个邮政编码之间的距离 HTML表单有一个字段,即邮政编码、英里(距离)\ 具有7000条记录的数据库结构 id | name | zip_code | lat | lng | status| MySQL查询 $query = "SELECT *, 3963 * acos(cos(radians(90-lat ))*cos(radians(90-'".$result['lat']."'))". "+sin(radians(90-lat ))* sin

我想知道两个邮政编码之间的距离

HTML
表单有一个字段,即邮政编码、英里(距离)\

具有7000条记录的数据库结构

id | name | zip_code | lat | lng | status|
MySQL查询

   $query =  "SELECT *, 3963 * acos(cos(radians(90-lat ))*cos(radians(90-'".$result['lat']."'))".
              "+sin(radians(90-lat ))* sin(radians(90-'".$result['lat']."'))".
              "*cos(radians(lng- '".$result['lng']."'))) AS distance FROM table_name".
              " WHERE memberLevel='basic' HAVING (distance < '".$miles."') 
                ORDER BY distance ASC";
$query=“SELECT*,3963*acos(弧度(90 lat))*cos(弧度(90-”。“$result['lat'])”。
“+sin(弧度(90 lat))*sin(弧度(90-)”$result['lat'].“)”。
“*cos(弧度(lng-”$result['lng'].“'))作为与表_name的距离”。
“其中memberLevel='basic'具有(距离<”、“$miles.”)
按距离排序ASC”;

我不知道什么是正确的MySQL查询,可以将距离与输入和存储的纬度、经度进行比较。

您可以使用空间函数和空间类型列

这是一个使用空间函数的好例子!

也可以定义自定义函数


CREATE DEFINER=`test`@`%`函数`geoDistance`(`lon1`DOUBLE、`lat1`DOUBLE、`lon2`DOUBLE、`lat2`DOUBLE)
双倍回报
语言SQL
确定性
无SQL
SQL安全定义程序
注释“”
开始
宣布v加倍;
选择cos(弧度(纬度1))
*cos(弧度(lat2))
*cos(弧度(lon2)-弧度(lon1))
+正弦(弧度(拉特1))
*sin(弧度(lat2))变成v;
如果(v>1,06371000*acos(v)),则返回;
结束

然后打电话


选择大地距离(X(点1)、Y(点1)、X(点2)、Y(点2))
结果以米为单位

能否请您更具体地说明所需的结果集?什么控制行数?每行应该包含什么?您将为查询提供哪些参数?先生,我已经更新了我的问题