0
这是我的PHP代码..MySQL的最近成果 - PHP地理位置回路发出
<?php
$db = mysqli_connect('','','','');
$lat = "40.3828192";
$lon = "10.7234345";
$check = mysqli_query($db,"SELECT * ,(3956 * 2 * ASIN(SQRT(
POWER(SIN(($lat - mlat) * pi()/180/2), 2) +COS($lat * pi()/180) *
COS(mlat * pi()/180) * POWER(SIN(($lon - mlon) * pi()/180/2), 2))))
AS distance FROM org HAVING distance < 50 ORDER BY distance ASC LIMIT 100");
$rowi = mysqli_fetch_array($check);
if ($rowi == 0) {
echo "No results nearby!";
}
else {
while($row=mysqli_fetch_array($check))
{
$distance= $row['distance'] * 60 * 1852;
echo $row['oname']; echo " - "; echo $distance; echo "<br>";
};
};
mysqli_close($db);
?>
我遇到的问题是,在一个循环中不显示重复的结果..我目前想显示所有的数据库行的顺序最近..我目前有4,但只有3个正在显示,因为其中2个具有相同的坐标..
有没有办法显示所有行,即使有些具有相同的坐标和相同的距离...我也不确定以米为单位的距离是否正确..我有60NM每个度数d 1852从NM转换..
实际的问题是,具有相同的坐标,我们正在检查($拉,$ lon)没有列出的第一行。当检查其他行(复制)与相同的坐标,他们正确返回距离为0 ..问题在哪里?
您可以使用php进行所有数学计算,并忽略查询中的计算以获得良好性能。 –
你是什么意思..在调用查询之前限制可接受的距离坐标?你有一个例子吗? – 120382833
https://www.marketingtechblog.com/calculate-distance/ –