2012-03-23 2 views
-1

예를 들어, 일부 데이터를 가져 오는 mysql 쿼리가 있습니다. 그런 다음 데이터의 일부를 기반으로 다른 쿼리를 실행합니다.mysql_fetch_array가 쿼리를 재설정합니까?

내 경우에 첫 번째 쿼리를 반환하는 경우 $qOne. 모든 것이 훌륭하게 작동합니다.

그러나 내 while 루프를 사용한 후 while ($row = mysql_fetch_array($qOne)) 빈 배열로 반환됩니다. (하지만 내가 반환하는 두 번째 쿼리가 작동하지 않는다)

나는이 "$savedResult = $qOne"처럼 엉망이 아닌 또 다른 var im에 첫 번째 쿼리를 "저장할 수 있는지"보았습니다. 그렇다면 $ savedResult를 반환 하겠지만 그랬습니다. 작동하지.

아무도 내 결과를 모두 반환하려면 아래 내 함수를 얻을 수있는 방법을 알고 있습니까? 감사!

function getFoods($sort, $start, $limit) { 

     $qOne = mysql_query("SELECT a.id, a.name, a.type, AVG(b.r) AS fra, COUNT(b.id) as tvotes FROM `foods` a LEFT JOIN `foods_ratings` b ON a.id = b.id GROUP BY a.id ORDER BY fra DESC, tvotes DESC LIMIT $start, $limit;"); 

     $i = 0; 
     $qry = ""; 
     while ($row = mysql_fetch_array($qOne)) { 
      $fid = $row['id']; 
      if ($i > 0) 
       $qry .= " UNION "; 
      $i++; 
      $qry .= "SELECT fid, ing, amount FROM foods_ing WHERE fid='$fid'"; 
     } 

     $qTwo = mysql_query($qry); 

     return array($qOne, $qTwo); 
    } 
+0

왜이 downvoted 있었나요? 글자 그대로 mysql_data_seek()에 대해 들어 본 적이 없거나 이전에 mysql_query()를 리셋하는 개념이 있었다. 그러나 이제 나는 그것을 얻었고 희망을 갖고 다른 누군가는 이것으로부터 배울 것입니다. – brybam

+0

mysql_data_seek()가 필요하다면, 뭔가 잘못하고있는 것입니다. –

+0

나는 mysql/php에 꽤 익숙하다. 그냥 배우려고. 너는 내게 아무 것도 가르치지 않았다는 의견이다. – brybam

답변

1

두 개의 쿼리 결과 리소스를 반환하면 실제로 사용할 때이를 가져와야한다는 것을 기억하십시오. (우리는 당신이 그것을 구현하는 코드를 보지 못한다).

이미 반복 한 후 $qOne을 사용하려면 첫 번째 위치로 되감기해야합니다. 그게로 끝났어 mysql_data_seek()

mysql_data_seek($qOne, 0); 
+0

죄송합니다, typo on stackoverflow. 그것은 내 코드에서 그렇게 좋아지지 않았습니다. 그것에 대해 정말 유감입니다. – brybam

+0

@brybam 글쎄, 여전히 문제가있다. :) –

+0

아, 멋지다. 이상한 것은 다시 감기처럼 될 필요가 있습니다. 그것은 당신의 대답을 정확하게 표시 할 수 있다고 말합니다. 감사! – brybam

관련 문제