php + mysql を使用して、FuelPHP でプロジェクトを作成しています。私はこのデータベースクエリを持っています(複雑なクエリのお尻の痛みのため、組み込みのクエリビルダーは使用していません)。
$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(result) を実行すると、行数が 2 と表示されます。
ただし、この結果を処理したり、配列に変換したりすることはできないため、できません
foreach($result as $row) { echo $row['id'] . ' + ' . $row['D']}
または似たようなもの。
このコードを貼り付けて phpmyadmin で php 変数を実際の値に置き換えると、緑色の「クエリは正常に実行されました」というメッセージが表示されますが、行は返されません (2 行が返されるはずです。「このクエリはゼロを返しました」というメッセージさえありません)。行のメッセージ)。この種のネストされた/複雑なSQLクエリの経験はあまりないので、助けていただければ幸いです。
ありがとう。