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

时间:2012-09-05 03:50:38

标签: php mysql

我正在为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();
}

其中mmo_db1是数据库的名称。

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

3 个答案:

答案 0 :(得分:5)

为什么在两个查询中有一个

的错误
UPDATE users SET  gold = gold + 50;

答案 1 :(得分:1)

mysql_query(“UPDATE mmo_db1users SET gold = gold + 50”);

ps,mysql * = bad

答案 2 :(得分:1)

为什么先选择?如果你想给每个人额外的50金币,为什么不这样做:

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