2016-03-07 3 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

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

+1

Вы не можете использовать производный псевдоним столбца в предложении WHERE. Либо измените «WHERE distance» на «HAVING distance», либо, лучше, снова выпишите формулу всей дистанции. – Strawberry

ответ

0

Вы можете решить это, изменив расстояние WHERE до расстояния HAVING, это связано с тем, что вы не можете использовать выведенный псевдоним столбца в предложении SQL WHERE.

Смежные вопросы