我是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返回多个点,该数据库存储在数组中。现在我想在数组中取这些点的总和。我应该怎么做。
答案 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函数,您将获得数组。