CREATE TABLE `signups` ( `uid` smallint(5) unsigned NOT NULL COMMENT '使用者編號', `action_id` smallint(5) unsigned NOT NULL COMMENT '活動編號', `signup_date` datetime NOT NULL COMMENT '報名日期', PRIMARY KEY (`uid`,`action_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ``` 2. 基本上只有三個欄位! 3. 所謂報名,就是在這個表中多一筆紀錄,看是誰(uid),在什麼時候(signup\_date),報了哪個活動(action\_id) 4. 基本上,此表沒有所謂審核的功能,有需要請自己加(研習哪來那麼多時間...) ### 二、加入報名函數 1. 由於按鈕是連結到 index.php ,其 op 為 signup,所以,按照老方法,建流程,做函數。 2. 修改流程,加入一組: ``` case "signup": signup($action_id); header("location:{$_SERVER['PHP_SELF']}?action_id=$action_id"); exit; ``` 3. 只要傳入編號即可,uid可以從 session抓,日期更是可直接由資料庫產生。 4. 報名後,直接轉向該活動,我們希望可以在活動下方看到已經報名名單 ### 三、製作報名函數 1. 在 index.php 中新增 signup() 函數,新增報名資訊到 signups 中 ``` //報名 function signup($action_id) { global $db; $uid = $_SESSION['uid']; $sql = "INSERT INTO `signups` ( `action_id`, `uid`, `signup_date`) VALUES ('{$action_id}', '{$uid}', NOW())"; if (!$db->query($sql)) { throw new Exception($db->error); } } ```
case "signup": signup($action_id); header("location:{$_SERVER['PHP_SELF']}?action_id=$action_id"); exit; ``` 3. 只要傳入編號即可,uid可以從 session抓,日期更是可直接由資料庫產生。 4. 報名後,直接轉向該活動,我們希望可以在活動下方看到已經報名名單 ### 三、製作報名函數 1. 在 index.php 中新增 signup() 函數,新增報名資訊到 signups 中 ``` //報名 function signup($action_id) { global $db; $uid = $_SESSION['uid']; $sql = "INSERT INTO `signups` ( `action_id`, `uid`, `signup_date`) VALUES ('{$action_id}', '{$uid}', NOW())"; if (!$db->query($sql)) { throw new Exception($db->error); } } ```
//報名 function signup($action_id) { global $db; $uid = $_SESSION['uid']; $sql = "INSERT INTO `signups` ( `action_id`, `uid`, `signup_date`) VALUES ('{$action_id}', '{$uid}', NOW())"; if (!$db->query($sql)) { throw new Exception($db->error); } } ```
進階搜尋