2015-02-05 130 views
0

我試圖用一個解決方案,我對谷歌的文檔here添加幾個條件,找到在mysql中附近的地方 - 谷歌地圖

的問題是我想在搜索

添加一些更多的過濾器找到致富附近的地方

原液

$sql2 = "SELECT *, (3959 * acos(cos(radians(" . $row1['tubeLan'] . ")) * cos(radians(mapLan)) * cos(radians(mapLon) - radians(" . $row1['tubeLon'] . ")) + sin(radians(" . $row1['tubeLan'] . ")) * sin(radians(mapLan)))) AS distance FROM " . $table . " HAVING distance < 2500 ORDER BY distance LIMIT 0 , 20; 

我希望它在上面的語句

SIZE between $firstrange and $secondrange" 
添加此過濾器是什麼0

我試過,但沒有提供所要求的結果

$sql2 = "SELECT *, (3959 * acos(cos(radians(" . $row1['tubeLan'] . ")) * cos(radians(mapLan)) * cos(radians(mapLon) - radians(" . $row1['tubeLon'] . ")) + sin(radians(" . $row1['tubeLan'] . ")) * sin(radians(mapLan)))) AS distance FROM " . $table . " HAVING distance < 2500 ORDER BY distance LIMIT 0 , 20 and SIZE between $firstrange and $secondrange"; 

我在做什麼錯在這裏?我不能通過將AND放在它們之間來添加這些條件嗎?

回答

1

相信你可以使用添加條件和,但你必須將它們添加到您的WHERE或HAVING子句中,而不是在聲明的末尾:

SELECT *, 
(3959 * acos(cos(radians(" . $row1['tubeLan'] . ")) * cos(radians(mapLan )) * cos(radians(mapLon) - radians(" . $row1['tubeLon'] . ")) + sin(radians(" . $row1['tubeLan'] . ")) * sin(radians(mapLan)))) AS distance 
FROM " . $table . " 
WHERE SIZE between $firstrange and $secondrange 
HAVING distance < 2500 ORDER BY distance LIMIT 0 , 20 ; 

(我想SIZE是在你的表中的列)

+0

謝謝 - 現在正在工作 – Muhammad 2015-02-05 16:06:04

相關問題