我将此脚本作为一个cron作业设置为每5分钟运行一次,问题是它不会增加能量水平,因为我认为它应该。如果有人能告诉我这里做错了什么就会很棒。 请记住,这不会返回错误,只是不起作用,数据库连接信息也是正确的,只是在帖子之外。
{
$energy = mysql_query("SELECT energy FROM members WHERE id=$id");
//get current users energy level
$energy_max = mysql_query("SELECT energy-Max FROM members WHERE id=$id");
//get current users Maximum energy level
if ($energy < $energy_max)
// do -if current energy level is less than maximum
{
$energy = $energy ++;
//increment energy by 1
mysql_query("UPDATE members SET energy= $energy");
//set the new energy level
}
$id++;
//increment to the next user
}
答案 0 :(得分:3)
您可以在一个声明中解决所有问题
UPDATE `members` SET `energy` = `energy` + 1 WHERE `energy-Max` > `energy`;
这样您就可以拥有一个而不是3 *个成员数的查询
答案 1 :(得分:0)
mysql_query
不会返回值,只会返回所谓的查询ID 。您必须获取实际数据:
$query = mysql_query("SELECT energy FROM members WHERE id=$id");
$val = mysql_fetch_assoc($query); // Now the data is in $val['energy']
当然,您可以通过此方式更快地完成此操作(如其他答案中所述):
UPDATE members SET energy = energy + 1 WHERE energy < energy-Max;
答案 2 :(得分:0)
您忘记了更新声明中的WHERE id = $id
。
mysql_query("UPDATE members SET energy= $energy WHERE id = $id");
但KingCrunch的答案更好......