13-1
怎樣才叫做已經報名?
一、先回顧一下報名的資料表
- 咱的資料表很簡單
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;
-
基本上只有三個欄位!
-
所謂報名,就是在這個表中多一筆紀錄,看是誰(uid),在什麼時候(signup_date),報了哪個活動(action_id)
-
基本上,此表沒有所謂審核的功能,有需要請自己加(研習哪來那麼多時間...)
二、加入報名函數
- 由於按鈕是連結到 index.php ,其 op 為 signup,所以,按照老方法,建流程,做函數。
- 修改流程,加入一組:
case "signup":
signup($action_id);
header("location:{$_SERVER['PHP_SELF']}?action_id=$action_id");
exit;
-
只要傳入編號即可,uid可以從 session抓,日期更是可直接由資料庫產生。
-
報名後,直接轉向該活動,我們希望可以在活動下方看到已經報名名單
三、製作報名函數
- 在 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);
}
}