Php SQL搜索“;近;经纬度
我正在尝试编写一个搜索栏,在某个位置附近搜索。现在它是硬编码的。在我为经度和纬度添加类似的语句之前,该语句一直有效。有更好的方法吗Php SQL搜索“;近;经纬度,php,mysql,sql,Php,Mysql,Sql,我正在尝试编写一个搜索栏,在某个位置附近搜索。现在它是硬编码的。在我为经度和纬度添加类似的语句之前,该语句一直有效。有更好的方法吗 $searchString = explode(' ', $_GET["searchString"]); $useLocation = $_GET["useCurrentLocation"]; if($useLocation == 1){ foreach($searchString AS $key){ $stmt = $db->pre
$searchString = explode(' ', $_GET["searchString"]);
$useLocation = $_GET["useCurrentLocation"];
if($useLocation == 1){
foreach($searchString AS $key){
$stmt = $db->prepare("SELECT * FROM locations WHERE Name LIKE '%{$key}%' AND Longitude Like '-79.8579' And Latitude Like '43.5237'");
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()){
echo $row['Name'];
}
}
}
你可以在网上找到很多关于“如何按位置搜索”的解决方案 关于Stackoverflow,有一些答案:
SELECT *
FROM maps
WHERE (
6366 *
acos(
cos(radians(48.560719)) -- $latitude_ref
*
cos(radians(`latitude`))
*
cos(radians(`longitude`) - radians($longitude_ref)) -- $longitude_ref
+
sin(radians(48.560719)) * sin(radians(`latitude`)) -- $latitude_ref
)
) <= 2 -- r in Km (here: 2 km)
互联网上有许多例子:)你可以在互联网上找到许多关于“如何按位置搜索”的解决方案 关于Stackoverflow,有一些答案:
SELECT *
FROM maps
WHERE (
6366 *
acos(
cos(radians(48.560719)) -- $latitude_ref
*
cos(radians(`latitude`))
*
cos(radians(`longitude`) - radians($longitude_ref)) -- $longitude_ref
+
sin(radians(48.560719)) * sin(radians(`latitude`)) -- $latitude_ref
)
) <= 2 -- r in Km (here: 2 km)
互联网上的许多例子:)