PHPとSqliteとJavaScriptを使って勝敗を管理してみる

スポンサーリンク

このページではソースコードの一部分を簡単な解説をしています。
サンプルのソースコードはgithubにあります。

スポンサーリンク

概要

いままで作成したゲームの中で三目並べなどコンピューターと対戦できるゲームの戦績を管理する表を作りました。データベースはSqlite、データベースの接続にはPHP、HTMLへ表示させるためのDOM操作はJavaScriptでしました。↓のプログラムは今回実装した勝敗表のプログラムを利用したサンプルです。手番と勝敗を選択して送信ボタンを押すと戦績表に反映されます。

勝敗表を実装した過去のゲーム↓

Visual Studio Codeの拡張機能SQliteを使用してデータベースを作成する

データベースの作成にはVisual Studio Codeの拡張機能SQliteを使用しました。

テーブル名はtestにしました。テーブルの中には五つのカラムがあり、一つ目はプライマリキー、二つ目のturnは手番、残りのwin、lose、drawには勝ち、負け、引き分けの数をそれぞれ保持します。

PHPのPDOを使ってデータベースに接続してデータを取得する

PDOクラスをインスタンス化する

PDOクラスの引数にデータベースファイルが置いてあるパスを指定します。これでデータベースの接続は完了です。必要に応じてsetAttributeメソッドで属性をセットします。今回は3つ属性をセットしました。

queryメソッドを使用して必要なデータを取得する。

UNION句を使用して通算成績の行を作成し、fetchAllメソッドでデータを取得しています。取得したデータはjson_encodeメソッドでjson形式にエンコードしています。

JavaScriptのFetch APIを使ってサーバーにリクエストする

先ほどPHPで作成したjsonをJavaScriptのFetchAPIを使用して取得します。

DOMを操作してHTMLにレンダリングする。

データベースへデータを追加する

サンプルプログラムの送信ボタンが押されるとサーバーへリクエストされます。先手番が選択されていたら0、後手番なら1の値を勝敗に関しても勝ちなら1負けなら0引き分けは2の数値をサーバーへ送信しています。

PHPでデータベースへデータの登録。

JavaScriptからリクエストされたデータをprepareメソッドを使いクエリを送信して追加します。 勝敗に応じたクエリを用意し、手番はプレースホルダーを使用して値をセットしました。

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

タイトルとURLをコピーしました