PHPとMySQLでCAPMのクイズ作成③:データ入力他

クイズ作成の続き、データ入力とクイズの結果を表示を作りました。

1.データ入力 スクリーン

コードは 以下のようになります。

Submitを押すとadd.phpのphp部分、if(isset($_POST[‘submit]))がTrueになるのでその部分が実行されます。

まず4つの選択肢をArrayに入れて処理しやすくします。

次に、questionテーブルへのInsert分を構成し実行します。それがうまく行ったらchoicesのInsertをFor Eachのループで実行します。(選択肢をArrayに入れたのはこの為)

最後の選択肢のInsertがうまくいったら$msgをセットして、Add a questionの下に表示させます。

全部で何問あるかの表示もしているのでquestionテーブルを読んでカウントもしています。

2.クイズ結果表示

2-1.process.phpの一部で、クイズに正解しなかった時にincorrectテーブルに追加するようにしました。

コメントアウトされているのは、$_SESSIONに不正解のquestion_idとchoice_idをArrayとして保存したかったのですが、うまく行かなかったなごりです。

このprocess.phpでなくテスト用にこれだけ取り出して行うとうまくいきますが、ここではなぜかうまく行きませんでしたので、あきらめてテーブルに保存することにしました。

2-2.final.phpです。

このphpでは不正解のデータを保存したincorrectテーブルから読んで問題と選択肢を表示させています。

まとめると、Session variableとArrayの相性が悪いのか、process.phpの何かがよくないのかとにかくArray_pushを実行しても何もデータが入ってこないという現象には苦労しました。

結局原因は分からないですが、執着しても仕方ないのでテーブル作成に切り替えてうまく行ったので良かったです。