Я создаю проект в FuelPHP с php + mysql.У меня есть этот запрос к базе данных (я не использую их встроенный построитель запросов, потому что это просто боль в заднице для сложных запросов).
$sql = DB::query('
SELECT game_id, lati, longi,
acos(sin (' . $lat . ')
* sin (radians( lati ))
+ cos (' . $lat . ')
* cos (radians(lati))
* cos (radians(longi) - ' . $lon . '))
*' . $R . ' AS D
FROM (
SELECT game_id, lati, longi
FROM games
WHERE lati > ' . $minLat .
' AND lati <' . $maxLat .
' AND longi > ' . $minLon .
' AND longi < ' . $maxLon .
') AS firstcut
WHERE
acos(sin (' . $lat . ')
* sin (radians( lati ))
+ cos (' . $lat . ')
* cos (radians(lati))
* cos (radians(longi) - ' . $lon . '))
*' . $R . '<' . $rad .
' ORDER BY D');
Если я выполню это и print_r (результат) числоотображается количество строк, то есть 2.
Однако я не могу обработать или преобразовать этот результат в массив, поэтому я не могу
foreach($result as $row) { echo $row['id'] . ' + ' . $row['D']}
или что-то подобное.
Если я вставлюэтот код и заменить php переменные с реальными значениями в phpmyadmin, я получаю зеленое сообщение «Запрос был выполнен успешно», но строки не возвращаются (две строки должны быть возвращены, даже нет сообщения «Этот запрос вернул ноль строк»)).У меня нет большого опыта работы с такого рода вложенными / сложными SQL-запросами, поэтому любая помощь будет принята с благодарностью.
Спасибо.