2012-03-23 8 views
-1

たとえば、私はいくつかのデータを取得するmysqlクエリを持っています。次に、取得したデータの一部に基づいて別のクエリを実行します。mysql_fetch_arrayはクエリvarをリセットしますか?

私の場合、最初のクエリを返すのは$qOneです。すべて素晴らしいです。

ただし、whileループを使用した後while ($row = mysql_fetch_array($qOne))空の配列として返します。 (しかし、私が返す2番目のクエリは返す) この最初のクエリを別のvar imに保存することができたかどうかは、この$savedResult = $qOneのように混乱していないとしたら、私はちょうど$ 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

なぜこれがダウンしましたか?私は文字通りmysql_data_seek()のことを聞いたことがありませんし、前にmysql_query()をリセットするという概念はありませんでした。しかし今、私はそれを手に入れ、他の誰かがこれから学ぶことを願っています。 – brybam

+0

mysql_data_seek()が必要な場合は、何か問題があります。 –

+0

私はmysql/phpにはかなり新しいです。ちょうど学ぶことを試みる。あなたは、私に何も教えていないというコメントです。 – brybam

答えて

1

2つのクエリ結果リソースを返したら、実際にそれらを使用するときにそれらからフェッチする必要があることに注意してください。 (実装するコードは表示されません)。

すでにループした後に$qOneを使用するには、最初に戻す必要があります。これで完了しましたmysql_data_seek()

mysql_data_seek($qOne, 0); 
+0

申し訳ありませんが、typo on stackoverflow。それは私のコードではそうではありませんでした。それについて本当に申し訳ありません。 – brybam

+0

@brybamまあ、依然としてシークの問題があります:) –

+0

ああ、それはそれをしたクール。奇妙なことには、巻き戻しのようにする必要があります。それはあなたの答えを分で正確に記すことができると言います。ありがとう! – brybam

関連する問題