2011-07-15 52 views
2

我是新來的MySQL,並想諮詢有關使用MySQL的我的迷你遊戲。這個想法是,從遊戲中我得到兩個變量 - 一個是電子郵件,另一個是得分。使用MySQL的迷你遊戲

我正在考慮創建一個包含兩列的表格並將電子郵件設置爲主要表格。

問題是我該如何讓php腳本替換第二次嘗試的球員的得分值?

例如,[email protected]在第一次嘗試中得分爲100,腳本將INSERT INTO表格VALUES($ email,$ score)添加爲100。然後用戶嘗試另一次,同一個腳本嘗試添加但獲取重複的錯誤。對腳本邏輯的任何幫助都會很棒!歡呼聲

+0

爲什麼downvote? – Quassnoi

+0

請詳細填寫 –

+0

不是我,不能那麼做:) – rctplcs

回答

6
INSERT 
INTO mytable (email, score) 
VALUES ($email, $score) 
ON DUPLICATE KEY 
UPDATE 
SET  score = $score 

這需要email是的mytablePRIMARY KEY

+0

語法會是這樣的嗎? $ query =「INSERT INTO irasai VALUES(email,score)ON DUPLICATE KEY UPDATE SET score = $ score」; ? – rctplcs

+1

@user:查看我的帖子以獲取正確的語法。將'$ email'和'$ score'替換爲實際值,'mytable','email'和'score'以及實際的表和字段名稱。 – Quassnoi

+0

謝謝,工作。只有在新分數較高時才更新任何提示? :) – rctplcs

1

沒有更多細節很難回答。如果有某種會話或預先註冊播放器,例如,您可以插入一個「默認分數」爲零,然後總是更新而不是插入。否則,Queassnoi的解決方案可能是最好的。

1

您需要使用UPDATE,而非嵌入

UPDATE table SET score = $newScore where email=$email 

您嘗試添加一個新的記錄具有相同的主鍵,因此錯誤信息