- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:whileが上手く回らず困っています)
whileの中にwhileを入れると初めのwhileが回らなくなる原因と解決方法
このQ&Aのポイント
- OracleでPHPを学んでいる際に、whileの中にwhileを入れると初めのwhileが回らなくなる現象に困っています。FetchArray()が上書きされている可能性があると考えていますが、どのように対応すれば良いのでしょうか?
- 具体的なコードを示します。select文を発行し、結果を$row1に格納した後、さらに別のselect文を発行して結果を$row2に格納しようとしています。しかし、2つ目のwhileループに入る前に初めのwhileループが中断されてしまいます。
- 問題の原因として、FetchArray()メソッドが上書きされてしまっている可能性が考えられます。解決方法としては、FetchArray()を上書きせずに異なる方法を使用することが必要です。具体的な方法は、FetchAssoc()メソッドを使用することです。FetchAssoc()は連想配列を返すため、異なる結果セットを処理する際に便利です。
- みんなの回答 (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]; } } }
お礼
ありがとうございます。 実際やってみて上手くいきました。 的確なアドバイスにとても感謝してます。