首页 > 解决方案 > 在 MySQL 数据库中搜索服务于输入 lat/long 的值

问题描述

这个问题不同于常规的 mysql lat/long,radius based data fetching

例如,我想搜索一个包含以下列的 mysql 数据库表-

ID  Items   lat       long      serving_radius(in km)

1   Item1  26.120888  85.364723    2
2   Item2  26.120888  85.364723    5
3   Item3  25.859800  85.786598    4
4   Item4  26.594900  85.504799    8

现在,如果用户有 lat/long (29.941095/77.812424) 想知道这些项目中的哪些可以在他的位置提供。然后我将如何使用 php & mysql 获取结果。

标签: phpmysqlgeolocationlatitude-longitude

解决方案


我猜你正在寻找的 SQL 是这个:

SELECT id, items, lat, long, serving_radius
FROM table 
WHERE lat = 29.941095 
AND long = 77.812424;

在您的 PHP 代码中,您应该使用 DB 驱动程序(我推荐您使用 PDO)来连接到 DB 并执行查询。

有很多关于如何使用 PDO(创建连接、选择、插入等)的教程。

我刚刚发现本教程可以帮助您:https ://parzibyte.me/blog/en/2019/10/14/php-mysql-tutorial-using-pdo/

编辑:不确定您的意思是如何使用这些精确值或更接近它们的值构建lat查询long。如果是这样,您可以查看https://gis.stackexchange.com/questions/31628/find-points-within-a-distance-using-mysql


推荐阅读