找著找著,這位作者所做的 Build a Calendar Using PHP, XHTML, and CSS,就做的很棒,基本上可以拿這個當作基礎往上再自行發揮。作者從最為基本的操作、增加控制器到如何使用事件寫的很清楚。
我在實作這篇 Add Events to the PHP Calendar 時是有碰到一些問題 (作者並沒有將 SQL與Connection to MySQL With PHP Function 一同放上去,自訂的 SQL 與相關註記如下),在此稍微記錄一下:
- 新增 MySQL Schema:
CREATE TABLE IF NOT EXISTS `events` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`title` varchar(100) COLLATE utf8_bin NOT NULL,
`event_date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
- 新增與修改以下 PHP Script
$db_link = mysql_connect('127.0.0.1', 'root', 'password');
mysql_select_db('calendar', $db_link) or die('Could not select database.');
$month=sprintf("%02d",$month);//1 tobe 01
$query = "SELECT title, DATE_FORMAT(event_date,'%Y-%m-%d') AS event_date FROM events WHERE event_date LIKE '$year-$month%';";
PS,(1) 新增MySQL Connection function ;(2) 因為(int)宣告與 mysql 檢索條件的緣故,所以改為將 $month 變數內的數字自動補 0;(3) DATE_FORMAT(event_date,'%Y-%m-%D')改為DATE_FORMAT(event_date,'%Y-%m-%d'),後來發現改成 %d後也是有問題,使用%d的條件,在1-9的日期不會呈現在月曆上,需改成 %e 才可以,DATE_FORMAT(event_date,'%Y-%m-%e'),這樣才運作正常。
- Demo:
- Kirkcaldy district scouts-此單位也是拿此Code來做修改
- My Code Here