如何将数学mysql查询应用于数据库中的每一行


How do I apply a mathematical mysql query to each row in a database?

我正在为MMORPG和管理员后端设计一个数据库。我需要一个函数,允许我向数据库中的每个帐户添加指定数量的游戏主要货币:Gold

这就是我所拥有的:

function massAddGold($gold_amount){
    dbconnect();
    $value=mysql_query("SELECT * from `mmo_db1`.`users`;");
    while ($row=mysql_fetch_array($value)){
        $currentgold=$row['gold'];
        $newgold=$currentgold+$gold_amount;
        mysql_query("UPDATE  `mmo_db1`.`users` SET  `gold` =  '"$newgold'";");
    }
    dbclose();
}

其中CCD_ 2是数据库的名称。

当我执行命令massAddGold("50");时,我会检查数据库。它取Gold值最高的行,将50 gold添加到其中,然后将该值应用于所有行。我需要它在每一行单独执行。

为什么在两个查询中做一个有什么问题

UPDATE users SET  gold = gold + 50;

mysql_query("UPDATE mmo_db1.users SET gold=gold+50");

ps,mysql*=错误

为什么要先选择?如果你想给每个人额外的50金,为什么不做一些类似的事情:

UPDATE  `mmo_db1`.`users` SET  `gold` =  `gold`+ $newgold;