• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP内でのループ計算についてです)

PHP内でのループ計算について

このQ&Aのポイント
  • PHPでMySQLのテーブルAとテーブルBの同じ値を比較し、値が一致する場合にテーブルBの値を取得するプログラムを作成しています。しかし、1回目のループ以降、テーブルBの値が取得できなくなってしまいます。
  • 何が原因でテーブルBの値を取得できなくなるのか、わかりません。お知恵を拝借したいです。
  • 以下のコードはループ計算の一部です。 forループでテーブルAの値を取得し、テーブルBの値と比較して一致する場合にテーブルBの値を表示するプログラムです。

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

  • ベストアンサー
回答No.1

$rstbは、$recmaxb個しかレコードを格納していません。 1回目のループ(aのループ)が終了した時点で、$rstbは$recmaxb個のレコードをmysql_fetch_arrayで出力し尽くしています。この時点で、$rstbはいわば空っぽの状態になっています。 なので2回目のループでは、mysql_fetch_array($rstb); は値を返さなくなります。 対策は2つほど考えられます。 ・テーブルBのデータを、ループの前に変数にコピーしておく。  ループの中では、テーブルAとコピーとを比較する。 ・そもそもSQL文を変更して、SQLでテーブルAとBを外部結合する。  そうすれば、面倒なPHPでの突き合せ処理が不要になる。

neko0001
質問者

お礼

お答えいただきまして、ありがとうございます! 早速テーブルBのデータをコピーして、テーブルBとコピーを比較させました。 無事に収納することが出来ました。 的確なアドバイス、本当にありがとうございます。 本当にありがとうございます。

関連するQ&A