2016-08-04 76 views
0

我是新来的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; 
     } 

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

+0

http://php.net/manual/en/function.array-sum.php –

+2

只需在查询中使用'SELECT SUM(points)..' – Saty

+0

您应该参数化$ sessionid变量 – iyop45

回答

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']; 
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; 
0

你可以在你的MySQL查询中直接使用SUM函数,你会得到数组。