在关联数组中添加值

时间:2016-08-04 13:13:54

标签: php mysql

我是php的新手。这是我的代码

    $retval = $conn->query("Select points from evaluation_log where session_id='{$sessionid}';");
    $result=array();
    $temp=array();
    while($record = $retval->fetch_array(MYSQLI_ASSOC)) 
        {
            $result[]= $record;
        }

此查询的目的是针对数据库中的id返回多个点,该数据库存储在数组中。现在我想在数组中取这些点的总和。我应该怎么做。

3 个答案:

答案 0 :(得分:0)

下面的代码将更加优化使用group_concat和array_sum

    $retval = $conn->query("Select group_concat(points separator ',') as points from evaluation_log where session_id='{$sessionid}';");
    $result=array();
    while($record = $retval->fetch_array(MYSQLI_ASSOC))   // while loop only once by using group_concat
        {
            $result[]= explode(',',$record);
        }
   $sum_of_points = array_sum($result);
   echo $sum_of_points;

答案 1 :(得分:0)

如果您绝对必须使用您的示例,那么这将起作用:

$retval = $conn->query("select points from evaluation_log where session_id='{$sessionid}'");

$sum = 0;

while($record = $retval->fetch_array(MYSQLI_ASSOC)) 
{
    $sum+= $record['points'];
}

echo $sum;

但是,这应该更简单:

$retval = $conn->query("select sum(points) as sum_points from evaluation_log where session_id='{$sessionid}'");

$record = $retval->fetch_array(MYSQLI_ASSOC);

echo $record['sum_points'];

答案 2 :(得分:0)

您可以在MySQL查询中直接使用SUM函数,您将获得数组。