我正在尝试从我的数据库中选择位于用户半径10米范围内的商家.测试显示问题出在我的查询中(虽然没有抛出MySQL错误).变量$ lat和$ lng都是从Javascript导入的,它们也很好.我怀疑这个问题与我使用BETWEEN有关,因为这是我第一次使用它.有任何想法吗?
$r = 20; // in miles
$lat_min = $lat - ($r / 69);
$lat_max = $lat + ($r / 69);
$lng_min = $lng - $r / abs(cos(deg2rad($lat)) * 69);
$lng_max = $lng + $r / abs(cos(deg2rad($lat)) * 69);
$query = "SELECT name FROM businesses WHERE $lat BETWEEN $lat_min AND $lat_max $lng BETWEEN $lng_min AND $lng_max ORDER BY Rand() LIMIT 6";
Run Code Online (Sandbox Code Playgroud)
查询应该是:
SELECT name FROM businesses
WHERE THE_ACTUAL_NAME_OF_THE_COLUMN BETWEEN $lat_min AND $lat_max
AND THE_NAME_OF_THE_NEXT_COLUMN BETWEEN $lng_min AND $lng_max
ORDER BY Rand() LIMIT 6
Run Code Online (Sandbox Code Playgroud)
不知何故,$ lat看起来不像表中的列名.你也错过了一个AND.
| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |