php / mysql - 为每个ID执行此操作

时间:2016-01-09 16:46:13

标签: php mysql if-statement while-loop

第一次来这里。我在这个网站上发现了许多有用的东西,但我现在卡住了。

我需要以下代码的帮助。我希望此代码检查每个ID统计数据[population,populationgrowth],进行在IF函数中可以找到的计算,然后为每个ID插入为populationgrowth的结果。这是一个cronjob。

$get_users = mysql_query("SELECT * FROM stats") or die(mysql_error());
while($user = mysql_fetch_assoc($get_users)){

if($stats['population'] > $stats['maxpopulation']) {    
    $populationgrowth = 0;
}
else{
    $populationgrowth = 1 * ($unit['moonhut']);
}

$update = mysql_query("UPDATE stats SET populationgrowth='".$populationgrowth."' WHERE id='".$user['id']."'") or die(mysql_error());
}

1 个答案:

答案 0 :(得分:2)

在SQL查询中执行算术:

UPDATE stats s    
    SET populationgrowth = (CASE WHEN population > maxpopulation THEN 0
                                 ELSE 1 * $unit['moonhut']
                            END):

注意:

  • 1 *是多余的。
  • 停止使用mysql_。它不再受支持。
  • 然后,在查询中使用参数以获得更安全的查询。