php代码执行后如何避免重载?

时间:2014-07-13 11:00:49

标签: php mysql

我的在线游戏中有一个页面...当用户赢得一场战斗时,他会获得一定数量的金钱 Exp 所以我使用更新查询来使用新值更新数据库:

mysql_query("UPDATE user_pokemon_db SET exp = exp + ".round($experience)." WHERE id = ".$pokeid[$value].";") or die(mysql_error());

此代码写在finish.php

但问题是..当我重新加载页面时......更新查询再次执行......!它继续,直到我继续按下重装。 逻辑上它的权利!但我想避免通过重新加载重新发送数据!! 我怎样才能避免重新加载数据的更新.. ???有什么办法吗?

2 个答案:

答案 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;
 }