本日が誕生日であるメンバーがいたらその旨を表示 ソースと解説

去る2016年7月13日は道重さゆみ27歳の誕生日でした。ネット上でも話題となりヤフーニュースにも取り上げられていましたね。このAvocadoMixの在籍日数等一覧ページを見ると・・・、

このように表示されはしますが、本日が誕生日であるということはわかりにくいですね。

そこで、トップページには急遽手書きでその旨を書きましたが、当日深夜には削除するという手間が発生しました。やはりこういう事は自動的に表示するようにしたいものです。

というわけで、今回は「本日が誕生日であるメンバーがいたらその旨を表示」するプログラムを作ります。

プログラム言語:PHP

データベース:MySQL

動作条件

インターネットに接続してある標準的なWebブラウザで動きます。(Firefox、Safari、Chromeを推奨)

流れ図

ソース

実際の文字コードはUTF-8ですが、ここではShift-JISにして表示します。

MVCfile name概要
Controllermusume.phpプログラムの本体、この中のavocadomix()関数の中にこの機能を追加
Modelmusume_model.php今回の追加変更は無し
Viewavocadomix_tmpl.phpトップページ内のインラインフレーム内に表示するテンプレート
avocadomix_main.php本日が誕生日であるメンバーがいたらその旨を表示するhtmlを組み立てる部分
header.php共通ヘッダー
footer.php共通フッター

controllers/musume.phpのavocadomix()

  1. 概要は上の流れ図を参照してください。
  2. 本日の月日はシステム値月とシステム値日を結合して7桁の文字にします。
  3. メンバーの誕生月日は元の8桁の日付から右桁を切り出しています。
  4. 年齢は月日が一致している条件なので、年部分の引き算で算出しています。

models/musume_model.php

  1. 今回の追加変更はありません。

views/avocadomix_main.php

  1. 一行目の「本日XXXX年XX月XX日は、」の横に今回のメッセージを表示します。
  2. これによって行数が変わらないのでインラインフレームの設定値内におさまります。

views/avocadomix_tmpl.php

  1. トップページ内のインラインフレーム内に文字だけ表示するので装飾はしていません。

実行

2016年7月15日にトップページを開くと、この日誕生日の元メンバーがいたのでこのように表示されました。

その次の日だとこのように変わりました。該当者がいないので、誕生日情報が表示されていないのです。

2016年7月16日 記