2012-05-20 49 views
1

所以我需要創建一個函數,每次用戶完成一個操作時調用,然後根據他們的操作給他們提供exp點。針對網站操作的EXP點系統

目前,我有這樣的事情:

$this->db->query("INSERT INTO experience (userid, action, exp) VALUES (1, $some_action, $exp)"); 

只是想知道什麼是最好的方式來跟蹤他們所取得的成就等?也可以使用SUM函數根據這些記錄計算它們的exp值嗎?或者如果有很多記錄會太慢?

謝謝!

回答

0

很可能需要添加時間戳或日期時間字段,但是,是SUM將是解決辦法:

$qry = "SELECT userid, SUM(exp) FROM experience WHERE userid = 9999" 

在每個動作分解:

$qry = "SELECT userid, action, SUM(exp) FROM experience WHERE userid = 9999 GROUP BY action" 
+0

好吧這是有幫助的。我認爲我在思考時遇到的困境是,我也必須將通知系統與EXP系統連接起來,所以我需要跟蹤他們的工作以及他們的收入。 – Sneaksta

+0

如果你想要更復雜的動作數據,你可以爲它們設置一個單獨的表格,在'experience'表格中有一個外鍵 - 所以'actions'表格將包含'action name','action type','行動價值'如果你覺得我的回答很有幫助,請隨時投票:) – Sp4cecat