php - 通过 lon/lat 坐标计算对 PHP/SQL 结果进行排序

标签 php mysql latitude-longitude

我正在尝试过滤我的表格结果并按经度和纬度坐标对其进行排序,但我正在使用的代码出现错误。这是代码,但我不确定我是否使用了正确的排序计算。任何人都可以帮忙吗:

$keyword = //From Form Input
$lon = //From Form Input
$lat = //From Form Input
$filter = //From Form Input

$radius = 6371;

//$get_result_sql = "SELECT * FROM members WHERE type = '$filter' AND name LIKE '%$keyword%'";
$get_result_sql = "SELECT * FROM members WHERE type = '$filter' AND name LIKE '%$keyword%' ORDER BY acos(sin($lat) * sin(lat) + cos($lat) * cos(lat) * cos(lon - ($lon))) * $radius DESC";
$get_result_res = mysqli_query($con, $get_result_sql);
if(mysqli_affected_rows($con)!=0){ //and if atleast one record is found 
    while($result = mysqli_fetch_assoc($get_result_res)){//This line has the error

最佳答案

错误消息清楚地表明,当您调用mysqli_fetch_assoc($get_result_res)时,$get_result_res不是有效的result_set。我的猜测是mysqli_query返回FALSE。可能是因为你的SQL语句有错误。

来自文档:

mysqli_query

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

<小时/>

您现在的下一步应该是以某种方式打印查询,以便发现问题。顺便说一句,mysqli probably allow you to obtain some meaningful error message 从数据库服务器发生故障时...

关于php - 通过 lon/lat 坐标计算对 PHP/SQL 结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279137/

相关文章:

php - 添加新的输入值与现有的输入值并显示

PHP 按类型对目录中的文件进行排序

mysql - SQL 到谷歌地图点

php - 页面被重定向到错误的页面

python - 使用python将经度和纬度转换为x和y网格系统

php - 显示来自网络根目录 public_html 之外的文件夹中的图像

javascript - 在url中设置国家代码并用国家代码重写

php - 如何在 MYSQL 表中的一个巨大字符串中找到一个字符串?

javascript - 使用javascript找到一个国家的经度和纬度边界框?

java - 使用 getter 时值返回 null