我的网站有一个每日的问题,并根据选择正确的答案,用户获得的经验点(XP)。
我的mySQL数据库中有两个表。1)问题库2)用户
现在,一旦他们回答了正确的问题,我就有一个if语句和这个查询:
$mysqli->query("UPDATE users SET xp = xp + '$xp_value' WHERE id = '$userID'");这样做,当然,我成功地更新了用户xp到一个新的值,但是问题是,当然,用户可以返回并回答这个问题无数次,以增加他/她的xp。
我正在寻找一种编码策略,只更新xp一次,而其他时候,用户试图回答它不会给xp的问题,只要他/她愿意,就重新检查这个问题。
谢谢你的时间,oliver_foxx
发布于 2016-04-12 11:53:46
记录一天吗?就像你说的那样,XP只是在上一次更新不是“今天”的时候才会被授予。
$mysqli->query("UPDATE users SET xp = xp + '$xp_value', `day` = DATE(NOW()) WHERE id = '$userID' AND `day` < DATE(NOW()) ");发布于 2016-04-12 11:56:22
您将需要一个新的表,您可以说:用户X回答了问题A的时间和时间。
在进行更新时,您可以轻松地检查用户是否已经正确地回答了问题。
您将有两个参考表:用户和问题。试题表将包含每个问题的经验。
https://stackoverflow.com/questions/36572439
复制相似问题