2011-08-09 19 views
1

私は、PHP + mysqlを使ってFuelPHPでプロジェクトを作成しています。 私はこのデータベースクエリを持っています(複雑なクエリのためのちょっとした痛みのため、ビルドされたクエリビルダを使用していません)。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'); 

Iは、行の数は、私は、治療、または配列にこの結果を変換するカントしかし2

すなわち表示されるので、私は

foreach($result as $row) { echo $row['id'] . ' + ' . $row['D']} 
を傾けるこれとしますprint_r(結果)を実行する場合

またはそれに類するもの。

php変数をphpmyadminに置き換えた場合、緑色の 'クエリは正常に実行されました'というメッセージが表示されますが、行は返されません(2行が返されます。このクエリは、ゼロの行のメッセージを返しました)。 この種のネストされた/複雑なSQL問合せには多くの経験がありません。

ありがとうございました。

+0

var_dump($ result)を実行して、出力が何であるか教えてください。 – Terrik

+0

私は次のようになります:int(2) – G33kCentric

+0

クエリを作成して実行し、結果をvar_dumpするコードブロック全体を表示します – jondavidjohn

答えて

0

データベースの結果からas_arrayメソッドを使用すると便利です。または、こちらをご覧ください:http://fuelphp.com/docs/classes/database/usage.html#results

+0

as_arrayメソッドは機能しません。私が燃料中のすべてのデータベース使用に使用するデフォルトの方法です。 – G33kCentric

+0

echo \ DB :: last_query();実行されたクエリが実際に正しいものかどうかを確認します。 –

1

DB::query()の2番目のパラメータとしてDB::SELECTを渡す必要があります。