PHP とMySQLでCAPMのクイズを作成①

CAPMはプロジェクトマネージメントのアソシエイトの資格のための試験で私が今勉強中です。

毎日クイズをネットから買ったり、あるいはただのもので勉強してたのですが、

せっかくPHPを勉強し直してるのでMySQLを使ってクイズを作ってみることにしました
今回はデータベースをどういう構成にしたか、それから、画面の構成について説明します。

クイズはMySQLのデータベースから読んでスクリーンに表示します。

表示された選択から選びSubmitを押すと次の問題にいきます。

最後まで終えるとスコアが表示されます。

メインメニューのページ:

クイズのページ:

最後のスコアのページ:

データベース設計はシンプルに2つのテーブルだけです。
question_idがフォーリンキーとなって2つのテーブルを紐づけします。Choicesのテーブルは一つの質問につき1Rowとなっていて、Is_correctというカラムで正解かどうかをを判断します(1が正解です)。

1.questionテーブル
question_id int primary key
question text

2.choicesテーブル
choice_id int primary key
question_id int foreign key
choice text
is_correct tinyint default = 0

テスト用に3つの質問をQuestionのテーブルに、それぞれ4つの選択肢をChoicesにデータ入力してテストしました。

構成されるPHPファイルは、以下の4つです。
1.index.php
2.question.php
3.process.php
4.final.php

1.index.php

これはメインメニューの画面で、シンプルに、
1. 全部でいくつ質問があるか、
2. 選択肢問題であることの表示
3. 予想時間が表示されていて、あとStartボタンがついてます。
Startボタンを押すと次の画面にいきます。

2.question.php

この画面で質問と選択肢が表示されます。
選択肢はRadio buttonで、一つだけ選択するようになっています。
Submitを押すと次の問題に行きます。
最後の問題を終えると4のFinal.phpに行きます。

3.process.php

このPhpでは選択したものが正しいかどうかを判断し、
正しければSession variable($_SESSION)にカウントがされていきます。
最後の問題が来たらFinal.phpにいくようになってます。

4.final.php

このPHPではいくつ正しい答えをしたかのスコアを表示して、Take againというボタンを押すとまた、question.phpに戻るようになっています。

次回は実際どんなロジックを使ったか説明します。