- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テーブルの情報が一部しか表示されません。(php))
テーブルの情報が一部しか表示されず、id=1の提出状況しか表示されない問題について
このQ&Aのポイント
- テーブルの情報が一部しか表示されず、id=1の提出状況しか表示されない問題が発生しています。
- テストデータはid=5までの5件を入力していますが、全てのID分の提出状況を表示させたいです。
- $recordSet2 = mysql_query('SELECT * FROM report');をwhileにいれてみたり試行錯誤していますが、上手くいきません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テーブル構造がどうなっているかは分かりませんが、まず二つのSQLを投げていることがおかしいですね。 exerciseとreportをjoinして一つのSQLにまとめてみてはいかがでしょうか? もしそれが出来ないとしたらテーブル設計を見直す必要があります。 これは質問とは関係がありませんがereg関数使用は避けた方が良いです。 eregは非推奨であり、セキュリティ脆弱性があるので必ずpreg_matchを 使用して下さい。 [関数とバイナリセーフ] http://itpro.nikkeibp.co.jp/article/COLUMN/20070402/267126/
その他の回答 (1)
- bm_hiro
- ベストアンサー率51% (200/388)
回答No.2
まず、×すら echo されていないって事は ↓の時点で蹴られてるということ。 > if ($table['lessonname'] == $report['lessonname'] && $table['name'] == $report['exercisename']) { んで、#1の方も言っているように、ここは本来SQLでやらせたほうが良さげ。 あと、これ ↓、何度繰り返そうとも、reportテーブルから取ってきたものの1行目しか処理してません。 > $recordSet2 = mysql_query('SELECT * FROM report'); > $report = mysql_fetch_assoc($recordSet2); なので、これの次の行の if で蹴られているんじゃないかなと思ったりしました。
質問者
お礼
回答ありがとうございます。 指摘をいただいたところを見直して変えてみたりして、 提出済みのみを一覧で表示させることはできました。 これを使う方向で考えようと思います。
お礼
回答ありがとうございます。 exerciseとreportをjoinして、提出済みのみを一覧で表示させるということはできたので、 それを使う方向で考えようと思います。 知りませんでした。リンク先ありがとうございます。preg_match()で代用しますね。