为每个用户获取值并增加1

时间:2013-02-15 00:26:03

标签: php mysql

我将此脚本作为一个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
}

3 个答案:

答案 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的答案更好......