数组中的值之和

时间:2012-02-26 14:44:14

标签: php mysql arrays

我正在查询数据库。然后将结果值插入数组并找到它们的总和。这是代码:

$result=mysql_query("SELECT items FROM mytable WHERE user_id='$id'");
$array=array();
while($row=mysql_fetch_assoc($result)){
    //insert values into array
    $array=$row; 
    $sum=array_sum($row); 
    echo $sum;
}

这只返回数组中的项而不是总和。我该如何纠正? Ps:我之前在这里试过这个,但它把正确的结果减半:

$result=mysql_query("SELECT items FROM mytable WHERE user_id='$id'");
$row = mysql_fetch_array($result, MYSQL_NUM); 
$sum = array_sum($row);
echo $sum;

由于

3 个答案:

答案 0 :(得分:8)

为什么不使用SELECT sum(items) FROM mytable WHERE userid="$id"?如果你将这种东西推到数据库服务器上,你将节省CPU。

答案 1 :(得分:0)

$result = mysql_query("SELECT items FROM mytable WHERE user_id='$id'");
$array = array();
$sum = 0;
while($row=mysql_fetch_assoc($result)){
  //insert values into array
  $array[] = $row; 
  $sum += $row;
}
echo $sum;

如果您需要数组和相应的总和,这将是代码。如果您只需要总和,那么如果您让数据库通过将查询转换为总结来进行总结,那将会更有效率

$result = mysql_query("SELECT SUM(items) FROM mytable WHERE user_id='$id'");
$sum = mysql_fetch_assoc( $result );

答案 2 :(得分:0)

使用数据库层通常比业务逻辑更快

$result=mysql_query("SELECT SUM(items) AS mysum FROM mytable WHERE user_id='$id'");
$row = mysql_fetch_array($result, MYSQL_ASSOC); 
/* always use assoc to prevent yourself from errors after table's modification */
echo $row['mysum'];