2016-03-07 55 views
0

爲了實現半徑搜索,我編寫了下面的sql查詢。似乎這部分不起作用。我認爲它是一個語法錯誤。sql查詢中的輸入變量

$statement = "SELECT store,address,phone,lat,log,zipcode,city,state, (3959 * acos(cos(radians(". $lat .")) * cos(radians(lat)) * cos(radians(log) - radians(". $lng .")) + sin(radians(". $lat .")) * sin(radians(lat)))) AS distance FROM geoinfo WHERE (zipcode = '$search_text' OR city = '$search_text' OR state = '$search_text') AND (distance < '$radius')"; 
 

 
$numberofstores = $resultstore = mysqli_query($conn, $statement);

請幫助。

+5

如果它是語法錯誤,爲什麼不添加錯誤measseg?你應該瞭解準備好的陳述。 – Jens

+1

使用error_Reporting http://php.net/manual/en/function.error-reporting.php – devpro

+1

您不能在WHERE子句中使用派生列別名。將「WHERE距離」更改爲「HAVING距離」,或者更好地再次寫出整個距離公式 – Strawberry

回答

0

您可以通過將WHERE距離更改爲HAVING距離來解決此問題,這是因爲您無法在SQL WHERE子句中使用派生列別名。