- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP内でのループ計算についてです)
PHP内でのループ計算について
このQ&Aのポイント
- PHPでMySQLのテーブルAとテーブルBの同じ値を比較し、値が一致する場合にテーブルBの値を取得するプログラムを作成しています。しかし、1回目のループ以降、テーブルBの値が取得できなくなってしまいます。
- 何が原因でテーブルBの値を取得できなくなるのか、わかりません。お知恵を拝借したいです。
- 以下のコードはループ計算の一部です。 forループでテーブルAの値を取得し、テーブルBの値と比較して一致する場合にテーブルBの値を表示するプログラムです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
$rstbは、$recmaxb個しかレコードを格納していません。 1回目のループ(aのループ)が終了した時点で、$rstbは$recmaxb個のレコードをmysql_fetch_arrayで出力し尽くしています。この時点で、$rstbはいわば空っぽの状態になっています。 なので2回目のループでは、mysql_fetch_array($rstb); は値を返さなくなります。 対策は2つほど考えられます。 ・テーブルBのデータを、ループの前に変数にコピーしておく。 ループの中では、テーブルAとコピーとを比較する。 ・そもそもSQL文を変更して、SQLでテーブルAとBを外部結合する。 そうすれば、面倒なPHPでの突き合せ処理が不要になる。
お礼
お答えいただきまして、ありがとうございます! 早速テーブルBのデータをコピーして、テーブルBとコピーを比較させました。 無事に収納することが出来ました。 的確なアドバイス、本当にありがとうございます。 本当にありがとうございます。