本日が誕生日であるメンバーがいたらその旨を表示 ソースと解説
去る2016年7月13日は道重さゆみ27歳の誕生日でした。ネット上でも話題となりヤフーニュースにも取り上げられていましたね。このAvocadoMixの在籍日数等一覧ページを見ると・・・、
このように表示されはしますが、本日が誕生日であるということはわかりにくいですね。
そこで、トップページには急遽手書きでその旨を書きましたが、当日深夜には削除するという手間が発生しました。やはりこういう事は自動的に表示するようにしたいものです。
というわけで、今回は「本日が誕生日であるメンバーがいたらその旨を表示」するプログラムを作ります。
プログラム言語:PHP
データベース:MySQL
動作条件
インターネットに接続してある標準的なWebブラウザで動きます。(Firefox、Safari、Chromeを推奨)
流れ図
ソース
実際の文字コードはUTF-8ですが、ここではShift-JISにして表示します。
MVC | file name | 概要 |
---|---|---|
Controller | musume.php | プログラムの本体、この中のavocadomix()関数の中にこの機能を追加 |
Model | musume_model.php | 今回の追加変更は無し |
View | avocadomix_tmpl.php | トップページ内のインラインフレーム内に表示するテンプレート |
avocadomix_main.php | 本日が誕生日であるメンバーがいたらその旨を表示するhtmlを組み立てる部分 | |
header.php | 共通ヘッダー | |
footer.php | 共通フッター |
controllers/musume.phpのavocadomix()
- 概要は上の流れ図を参照してください。
- 本日の月日はシステム値月とシステム値日を結合して7桁の文字にします。
- メンバーの誕生月日は元の8桁の日付から右桁を切り出しています。
- 年齢は月日が一致している条件なので、年部分の引き算で算出しています。
models/musume_model.php
- 今回の追加変更はありません。
views/avocadomix_main.php
- 一行目の「本日XXXX年XX月XX日は、」の横に今回のメッセージを表示します。
- これによって行数が変わらないのでインラインフレームの設定値内におさまります。
views/avocadomix_tmpl.php
- トップページ内のインラインフレーム内に文字だけ表示するので装飾はしていません。
実行
2016年7月15日にトップページを開くと、この日誕生日の元メンバーがいたのでこのように表示されました。
その次の日だとこのように変わりました。該当者がいないので、誕生日情報が表示されていないのです。
2016年7月16日 記