2013-06-29 72 views
0

我需要存儲一個整數數組。現在我的問題是,有一個操作已經完成了好幾次,所以我想將它限制爲單個查詢。在查詢中,我需要添加一個int到數組中的某個int。存儲一個php整數數組

這是一個計時器的某個頁面上花費的時間。目前,它只是算個在同一領域的所有網頁的通用計數器,所以我只有這樣做

UPDATE user SET active = active+$totaltime WHERE id=:id 

與$ TOTALTIME是最後檢查,然後之間的時間差。現在我想單獨存儲某些頁面。問題是我不確切知道會有多少頁面。我考慮過使用serialize,但是之後我需要做很多次2次查詢,這似乎不是一個好的解決方案。

有沒有其他方法可以做到這一點?

回答

1

您需要的是一個獨立的表格,用於跟蹤每個級別上每個用戶的活動時間。

讓調用此表userlevels,並給它下面的列:

userid INT 
levelid INT 
active INT 

的主鍵應該是用戶IDleveid列的組合,因爲只能有一個輸入用戶和級別的特定組合。

然後,當你想更新用戶已花費一定程度的時間量,你會做這樣的事情:

INSERT INTO userlevels (userid,levelid,active) 
VALUES (:userid,:levelid,$totaltime) 
ON DUPLICATE KEY UPDATE active=active+$totaltime; 

這在表中創建一個新條目,如果用戶從未如果已經有條目,則在該級別之前,或者增加活動時間。

這是mysql特定的語法,但在其他數據庫使用不同的調用時可以實現同樣的功能。

+0

不是我真正在尋找的東西 - 我的表格是一個用戶列表,每個用戶都應該以某種方式存儲了他們在特定遊戲的每個級別花了多少時間。我認爲每個級別都有一個列是非常愚蠢的,但是我不知道如何在單個查詢中添加值,如果在一個字段中有多個值,存儲爲'serialised'版本或者只是存儲數組爲純文本。 – jdepypere

+1

@arbitter我已經更新了我的答案。 –

+0

草坪割草時,我得出了同樣的結論 - 單獨的分貝確實是最好的。此外,我還可以輕鬆地將瀏覽量或其他頁面與其時間相結合。謝謝! – jdepypere