サイトアイコン プログラミングを学習中の私が、アウトプットするためのサイト

大きい順に並べ替えるクイズを作ってみる(サーバーサイドPHP編)

このページではソースコードの一部分を簡単な解説をしています。

作成したゲームはコチラから
ソースコードはgithubにあります

スポンサーリンク

概要

選択肢四つの中から大きい順にクリックして答えていくクイズゲームです。ジャンルを選びクリックするとクイズが始まります。サーバーサイドにはPHPを使用しデータベースから4つの選択肢をランダムに取得してクイズの作成とクライアント側から送られてきた回答の答え合わせをしています。クライアントサイドはJavaScriptを使用してクイズの表示、回答の送信などをしています。

クライアント側の記事は↓にあります。

データベースにクイズの選択肢と答えを追加する

データベースはSQLiteを使用しました。コマンドラインツールを使えるようにするためにSQLiteの公式サイトからPrecompiled Binariesダウンロードをし、解凍したファイルの中のsqlite3.exeを作業フォルダに移してターミナルからコマンドラインでテーブルを作成していきます。テーブルの中には二つのカラムがあり、一つ目のnameカラムにはクイズの選択肢の名前を保持して二つ目のsizeカラムには答えとなる大きさを保持しています。

続いてクイズの選択肢と答えを追加していきます。追加するデータはwikipediaなどからコピーしたものをエクセルに張り付けcsvファイルに編集したものを使いました。

データベースから選択肢をランダムに抽出してクイズ作成

データベースの接続にはPHPのPDOを利用しました。データベースから四つランダムに抜き出したものをそのままクライアント側へ送り、答え合わせ用に大きさ順に並び替えたものはサーバー側のSESSION変数で保持しています。
*以下からのソースコードは一部分ですそのままでは動きませんすべてのソースコードはgithubにあります。

答え合わせ

クライアント側から送られてきた回答をSESSION変数に保持していた答えと照らし合わせて判定しています。正解した場合、不正解の場合、選択肢4つすべて正解の場合、クイズを5問クリアした場合に分岐させ、連想配列のキー名resultにその状態を値として保持し、答えと一緒にクライアントへ渡して受け取ったクライアント側はresultの値によって表示する内容を変えるようにしました。

ソースコードはgithubにあります
最後までお読みいただきありがとうございました。

モバイルバージョンを終了