У меня есть набор адресов широты и долготы, а также пара кругов и их радиус, сохраненные в моей базе данных. Я хотел сохранить в другой таблице эти адреса внутри радиуса круга, но всякий раз, когда я запускаю запрос внутри оператора if, он выполняется бесконечно. Я новичок в PHP, и мне действительно нужна помощь с этим.
Образец кода :
foreach($jd as $join)
{
$ky = 40000 / 360;
$rad = $join->circle_radius / 1000; (circle_radius is saved in meters )
$kx = cos(pi() * $join->circle_lat / 180.0) * $ky;
$dx = abs($join->circle_lng - $join->addr_longitude) * $kx;
$dy = abs($join->circle_lat - $join->addr_latitude) * $ky;
$res = sqrt($dx * $dx + $dy * $dy);
if ($res <= $rad)
{
var_dump($res);
$data['list'] = array(
'id' => $join->id,
'affected_status' => "AFFECTED!",
'affected_cond' => "medium"
);
$this->main_model->addInsideCircle($data['list']);
}
}
Даже если ожидаемый результат равен 4, он зацикливается, давая мне 2k + данных внутри таблицы. Извините, мне нужно отредактировать заголовок, английский не мой родной язык.
Что ж, я думаю, что вам нужно отлаживать построчно (var_dump для каждой переменной), чтобы увидеть, есть ли ошибка в вычислениях.
Радиус составляет 0,72 км, при этом должны выводиться только адреса ниже или с тем же значением, что и было. Но результаты продолжают повторяться, в основном он печатает одни и те же значения снова и снова.
Может, в массиве $jd строк больше, чем ожидалось?






Привет, что значит он работает бесконечно =)