我的在线游戏中有一个页面...当用户赢得一场战斗时,他会获得一定数量的金钱和 Exp 所以我使用更新查询来使用新值更新数据库:
mysql_query("UPDATE user_pokemon_db SET exp = exp + ".round($experience)." WHERE id = ".$pokeid[$value].";") or die(mysql_error());
此代码写在finish.php
但问题是..当我重新加载页面时......更新查询再次执行......!它继续,直到我继续按下重装。 逻辑上它的权利!但我想避免通过重新加载重新发送数据!! 我怎样才能避免重新加载数据的更新.. ???有什么办法吗?
答案 0 :(得分:0)
首先, 在db表中设置一些表示其状态的标志,可以在以后重新加载时验证。
其次, 为了避免重新加载,请不要让用户点击网址。
第三, 在客户端也有一个标志,通过禁用帖子的URL /按钮避免不必要的重新加载。
答案 1 :(得分:0)
有一些,但大多数时候使用$ _SESSION是最好的选择。 只需在脚本更新时设置属性即可。 说:
$_SESSION['mustUpdateExperience']=true;
更新前检查此标志,并在更新完成后将其设置为false。
if(isset($_SESSION['mustUpdateExperience'])&&$_SESSION['mustUpdateExperience']===true){
mysql_query("UPDATE user_pokemon_db SET exp = exp + ".round($experience)." WHERE id = ".$pokeid[$value].";") or die(mysql_error());
$_SESSION['mustUpdateExperience']=false;
}