在while循环中错误地求和

时间:2014-06-14 11:58:05

标签: php mysql sql database

$dt = mysql_query("SELECT * FROM `member_territory` mt LEFT JOIN `drug_territory` dt ON mt.mt_ter = dt.t_id");

 while($t = mysql_fetch_array($dt)) {

     $total +=($t['t_reward']* $t['mt_lev'])*150;

     mysql_query("UPDATE `members` SET 
                 `drug_income` = '".$total."',
                 `drug_incometotal` = `drug_incometotal` + '".$total."', 
                 `wallet` = `wallet` + '".$total."' 
                 WHERE `playerid` = '".$t['mt_playerid']."'");

  }

所以这里是我的代码,而不是自我解释,当插入drug_income时,这是正确的,但是当它被插入drug_incometotalwallet时它是不正确的。

我不知道为什么,我已经尝试了所有知识来解决它!!。

任何想法为什么我得到这个不正确的结果(正如我所说的drug_income是正确的)只有当我试图在数据库中“+”它时才会返回错误的结果。

2 个答案:

答案 0 :(得分:1)

  

我不想在循环之后只增加一次... - user3740302 1分钟前

好的。所以你应该把你的UPDATE查询移到循环之外,对吗?

答案 1 :(得分:0)

您可以尝试此修改后的更新查询

mysql_query("UPDATE `members` SET drug_income = ".$total.", drug_incometotal = drug_incometotal + ".$total.", wallet = wallet + ".$total." WHERE `playerid` = '".$t['mt_playerid']."'");

它可能会解决您的问题..