• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:whileが上手く回らず困っています)

whileの中にwhileを入れると初めのwhileが回らなくなる原因と解決方法

このQ&Aのポイント
  • OracleでPHPを学んでいる際に、whileの中にwhileを入れると初めのwhileが回らなくなる現象に困っています。FetchArray()が上書きされている可能性があると考えていますが、どのように対応すれば良いのでしょうか?
  • 具体的なコードを示します。select文を発行し、結果を$row1に格納した後、さらに別のselect文を発行して結果を$row2に格納しようとしています。しかし、2つ目のwhileループに入る前に初めのwhileループが中断されてしまいます。
  • 問題の原因として、FetchArray()メソッドが上書きされてしまっている可能性が考えられます。解決方法としては、FetchArray()を上書きせずに異なる方法を使用することが必要です。具体的な方法は、FetchAssoc()メソッドを使用することです。FetchAssoc()は連想配列を返すため、異なる結果セットを処理する際に便利です。

質問者が選んだベストアンサー

  • ベストアンサー
  • garaogu
  • ベストアンサー率40% (67/166)
回答No.1

各SQLの実行で、同じ$dbを使用しているせいだと思います。 $dbを、sqlに合わせて、$db1、$db2、$db3にしてみてはいかがでしょうか? $sql1 $db1->Quary($sql1); while($db1->FetchArray()){ $row1 = $db1->mArray[row1]; $sql2 $db2->Quary($sql2); while($db2->FetchArray()){ $row2 = $db2->mArray[row2]; $sql3 $db3->Quary($sql3); while($db3->FetchArray()){ $name = $db3->mArray[name]; } } }

mi0802
質問者

お礼

ありがとうございます。 実際やってみて上手くいきました。 的確なアドバイスにとても感謝してます。