2011-07-15 49 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 

您尝试添加一个新的记录具有相同的主键,因此错误信息