2011-08-09 2 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 행의 수 I는 치료 또는 배열에 따라서 변환 캔트 그러나 2

즉 표시 그래서

foreach($result as $row) { echo $row['id'] . ' + ' . $row['D']} 
질수 이것에서 print_r (결과)을 실행하면

또는 유사합니다.

php 변수를 phpmyadmin에 실제 값으로 바꾸면 '쿼리가 성공적으로 실행되었습니다'라는 메시지가 표시되지만 행이 반환되지 않습니다 (두 행이 반환되어야하며 ' 이 쿼리는 0 행의 메시지를 반환했습니다. 이런 종류의 중첩 된/복잡한 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()의 두 번째 매개 변수로 DB::SELECT을 전달해야합니다.