プログラミング

[PHP]カレンダーを利用した予約システムの作り方[初心者向け]

「reservation関数」

みなさんこんにちは!ワトスンです。
今回は、、

PHP言語で予約システムを作る方法は?データベースと連携してカレンダーに予約情報を表示させたい!具体的にどうプログラムを組んでいけばいいの?

といった疑問に答えます。
 

■読んでほしい人
PHPでカレンダーの作成方法/祝日の追加方法を理解できている方
 

「カレンダーの作成方法」「祝日の追加方法」の理解がまだの方は下↓の記事を参考にして下さい。

*カレンダーが完成している前提で解説していきます。
 

PHP言語でデータベースから情報を取り出しそれをカレンダーに表示させるにはどうしたらいいか、わかりやすく解説していくので初心者の方もぜひ参考にしてみて下さい。

それでは解説していきます。

PHPで予約システムを作る手順

予約システムの作成手順は以下の通りです。
1:予約フォームの作成
2:データベースへの書き込み
3:データベースからの取り出し
4:カレンダーへの表示

予約フォームから情報を登録→その情報をデータベースに取り込み→データベースから情報を取り出す→カレンダーに情報を書き込む

といった感じです。

今回は4つ目の「カレンダーへの表示」を中心に解説していきます。

他の3つも簡単に解説していきます。

ちなみに今回は、「カレンダーに予約人数を表示させる予約システム」を作成していきます。

予約フォームの作成

予約システムには「予約フォーム」が必須です。

「予約フォーム」から名前や電話番号、日時などの情報をユーザーに登録してもらいます。

簡単に作ってみたのが下の画像のような感じです。

予約フォーム

このように予約に必要な項目を用意しておきます。

「予約フォーム」の作り方を簡単にご紹介します。

「予約フォーム」はHTML言語を使用して作成していきます。

コードは以下のような感じです。

今回の場合は”reservation_calender.php”へactionさせています。

“reservation_calender.php”で「データベースへの書き込み」ができるようにしていきいます。

データベースへの書き込み

次は、「予約フォーム」から登録された情報をデータベースへ書き込んでいきます。

注意

*データベースへ書き込むにはテーブルを用意しておく必要があります。
今回は下の画像のようなテーブルをご用意しました。
データベースのテーブル

データベースへ書き込むために必要な情報は以下の通りです。

・ホスト名
・データベース名
・テーブル名
・文字コードの種類(ほとんどの場合charset=utf8でOK)
・ユーザー名
・パスワード(特に指定していない場合は空白でOK)

それぞれの項目の確認方法は「特権」から確認できます。

データベースの情報確認

データベースへ書き込むためのプログラムは以下の通りです。

「データベースへの書き込み」ができれば次は、「データベースからの情報取り出し」をしていきます。

データベースからの取り出し

ちなみに今回は「予約フォーム」で”日付”と”人数”を登録してもらっているので、その情報をもとにカレンダーに人数を表示させるシステムを作成していきます。

早速ですが以下のプログラムをみて下さい。

getreservation関数を作ってみました。

この関数は、「予約された日の予約人数を取得する」関数です。

上のプログラムを詳しくみていきましょう。

予約情報一覧を$psへ格納

まずはこの↓部分。

この部分は「予約フォーム」から登録された全ての情報を取り出して$psに格納しただけです。

指定のテーブルから登録情報一覧を取得しています。

予約日とその日の予約人数を$reservation_memberへ格納

次はこの↓部分をみて下さい。

これは、$reservation_memberへ「予約日とその日の予約人数」を格納しています。

日付の古い順に並び替えてから返す

最後にこの↓部分。

ここで、日付の古い順に並び替えて$reservation_memberの情報を整理して返しています。

以上が「getreservation関数」の内容です。

作成した「getreservation関数」を使用してカレンダーへ予約人数を表示していきます。

カレンダーへの表示

さて、ここからが今回の本題です。

カレンダーの日付と予約された日付を照合する関数」を作成していきます。

「予約人数を表示させる関数」を作成する

以下のプログラムがその関数(reservation関数)の作り方です。

今回は、

予約人数が10人以上の場合→カレンダーに”予約できません”と表示
予約人数が10人より少ない場合→その日の予約人数を表示

するような関数にしました。

そして完成した「reservation関数」を使用して、カレンダーに予約人数を表示していきます。

カレンダーに関数を反映させる

最後の工程です。

先ほど作成した「reservation関数」を使用してカレンダーに予約人数を表示させます。

プログラムは以下↓の通りです。*ちょっと長いです

長くなりましたが、こんな感じでカレンダーに予約人数を表示します。

それぞれわかりにくい箇所はコメントしてあるので理解できると思いますが、どうしてもわからない場合は検索してみて下さい。

自分でわからない箇所を検索して解決する力は、これからプログラミングをしていく上でとても大切です。

調べてもわからない点がありましたらコメントまたはTwitterのDMでご連絡ください!

以上です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

4 件の投稿

  • 初めまして
    ブログを参考にカレンダーを作成しております。
    予約機能を追加したいのですが、躓いて前に進みません。
    差し支えなければ、githubまたフォルダ構成が分かる物があれば教えて頂けないでしょうか?
    よろしくお願い申し上げます。

    • 初めまして。お返事が遅くなり大変申し訳ありません。
      記事をご覧いただきありがとうございます。
      ご相談頂いた件ですが、必要なファイルは
      ・予約フォーム
      ・フォームから入力された内容をデータベースで処理させるファイル(記事中のreservation_calender.phpです)
      の以上2つになります。
      記事中ではプログラムがバラバラですが、予約フォーム以外のプログラムはすべてreservation_calender.phpへ入れてください。
      またご意見をもとに記事の改善をさせて頂きます。貴重なご意見ありがとうございました。

  • PHPの使用方法がわかりません
    PHPはHTMLのようにメモ帳等ではコード入力できないんでしょうか
    基本的な質問で申し訳ありません

    • 初めまして。コメントありがとうございます。
      お返事が遅くなったのでもう解決されてるかもしれませんが、PHPでもメモ帳などで作成可能ですが、やはりエディタ(私はBracketsを使用)の方が使いやすいかなと思います。
      最終的にはサーバーなどにファイルをアップするので、メモ帳などでも問題はありません。

関連記事