Функция rad2deg не существует - PullRequest
0 голосов
/ 28 сентября 2018

В моем скрипте я пытаюсь отфильтровать выбранные данные по их расстоянию до пользователя.Чтобы добиться этого, я использую этот запрос, который будет возвращать каждое сообщение в радиусе 10 километров:

$query = "SELECT * FROM Table WHERE ((rad2deg(acos((sin(deg2rad($actlat))*sin(deg2rad(lat))) + (cos(deg2rad($actlat))*cos(deg2rad(lat))*cos(deg2rad($actlon-lon))))))*111.13384) < 10";

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я получаю эту ошибку:

Uncaught mysqli_sql_exception: FUNCTION database_name.rad2deg does not exist

Итак, я попробовал другой способ, где функция работает так, как должна:

$test = rad2deg(x);
echo $test;

Почему я не могу использовать функцию rad2deg в своем запросе?

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете использовать функцию градусов () mysql, которая преобразует значения в радианах в градусы, и функцию радианы () для преобразования из градусов в радианы:

$query = "SELECT * FROM Table WHERE ((degrees(acos((sin(radians($actlat))*sin(radians(lat))) + (cos(radians($actlat))*cos(radians(lat))*cos(radians($actlon-lon))))))*111.13384) < 10";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...