我想要做的是增加你的收入然后如果你的收入超过$ storagecap把你的黄金放到$ storagecap但它不起作用我的代码
<?php
include("functions.php");
connect();
include("user_stats.php");
?>
<?php
if(isset($_SESSION['uid'])){
include("safe.php");
include("storagecap.php");?>
<?php
$get_users = mysql_query("SELECT * FROM `stats`") or die(mysql_error());
while($user = mysql_fetch_assoc($get_users)) {
//Get
$gold = $user["gold"];
$food = $user["food"];
$energy = $user["energy"];
//Increment
$gold += $user["income"];
$food += $user["farming"];
$energy += 5;
//Verify and correct
if($energy > 100)
$energy = 100;
if($gold > $storagecap)
$gold = $storagecap;
if($food > $storagecap)
$food = $storagecap;
//Submit
$update = mysql_query("UPDATE `stats` SET
`gold`= '".$gold."',
`food`= '".$food."',
`energy`= '".$energy."' WHERE `id`='".$user['id']."'") or die(mysql_error());
}
?>
答案 0 :(得分:0)
在我的溢出检查中,您似乎遇到了一些语法问题。 对于一个人来说,即使这个有效,他们也会有超过上限的金额直到接下来的15分钟。 例如,假设您有99个能量,并且它增加了5个,您现在将拥有104个。但是,上限检查仍然具有旧值,即99,并且什么都不做。 还
`gold`=`gold` '$storagecap'
不正确,您需要使用
`gold`= '".$storagecap."'
但要解决15分钟的延迟,最好的方法是:
<?php
include("functions.php");
include("storagecap.php");
connect();
$get_users = mysql_query("SELECT * FROM `stats`") or die(mysql_error());
while($user = mysql_fetch_assoc($get_users)) {
//Get
$gold = $user["gold"];
$food = $user["food"];
$energy = $user["energy"];
//Increment
$gold += $user["income"];
$food += $user["farming"];
$energy += 5;
//Verify and correct
if($energy > 100)
$energy = 100;
if($gold > $storagecap)
$gold = $storagecap;
if($food > $storagecap)
$food = $storagecap;
//Submit
$update = mysql_query("UPDATE `stats` SET
`gold`= '".$gold."',
`food`= '".$food."',
`energy`= '".$energy."' WHERE `id`='".$user['id']."'") or die(mysql_error());
}
?>
请注意我没有测试过此代码,将其视为一个粗略的例子
编辑: 只是另一个注意事项,如果运行此查询,返回99的能量,它必须将此修复为100,并且在同时运行的另一个查询中,我使用了一些能量。这可能导致这种用过的能量被“回馈”。对不起,我无法解释它更好= P查看MySQL事务。