[請益] 報名人數限制..

看板PHP作者 (andyice12)時間15年前 (2009/02/16 20:18), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/1
小弟最近做了一個簡易的報名系統 每個活動都有人數限制, 人數方面我的作法是,只要有人完成報名,人數就會減一, 那報名的頁面是只要人數已滿就不會顯示該活動, 目的就是人數為0時,就不讓人進入報名, 但是有個問題,當剩餘人數剩1時,如果有兩人同時進入活動報名, 就會變成我的報名人數就會變多一個人, 我是想當報名人數變0時,最後送出的,就回到前一頁重新選擇活動。 卡在這裡不知道怎麼寫,希望來請益各位高手,給小弟一些概念︿︿ 謝謝。 我在完成報名人數減一的語法如下 $c_id=$_POST['c_id']; $updateSQL="UPDATE course SET c_num=c_num-1 "; $updateSQL.="WHERE c_id=$c_id"; mysql_db_query($database_root,$updateSQL,$root); 不只是否能從這改,或是寫檢驗的方式? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.109.195

02/16 20:26, , 1F
最好的方法可能是transaction
02/16 20:26, 1F

02/16 20:26, , 2F
可以安全地在兩個人幾乎同時報名時正確處理
02/16 20:26, 2F

02/16 20:27, , 3F
但是寫作上會有點麻煩
02/16 20:27, 3F

02/16 20:34, , 4F
where加條件不行嗎? and c_num > 0之類的
02/16 20:34, 4F

02/16 20:34, , 5F
然後去算affected rows
02/16 20:34, 5F

02/16 20:48, , 6F
請問affected row 怎麼運算?有範例能參考嗎?
02/16 20:48, 6F

02/16 22:05, , 7F
mysql_affected_rows <-- 這個函數
02/16 22:05, 7F

02/17 01:46, , 8F
其實只要在 update 前再select一次剩餘人數就好啦XD
02/17 01:46, 8F
文章代碼(AID): #19cLcAjj (PHP)