为什么这段代码没有为每个用户加上我的花费的小时数?
while ($row = $result->fetch_assoc())
{
$total_spent_time += $row['spent_time'];
if (!array_key_exists($row['activity_type'], $data))
{
$data[$row['activity_type']] = array(
'spent_time' => array('user' => array())
);
$data[$row['activity_type']]['spent_time']['user'][$row['user']] = array('time' => $row['spent_time']);
if (array_key_exists($row['user'], $data[$row['activity_type']]['spent_time']['user']))
{
$data[$row['activity_type']]['spent_time']['user'][$row['user']]['time'] += $row['spent_time'];
}
}
它只给我行的最后一个值。
答案 0 :(得分:0)
尝试在循环之前声明计数器:
$total_spent_time = 0;
while ($row = $result->fetch_assoc()) {
$total_spent_time += $row['spent_time'];
}
echo $total_spent_time;
答案 1 :(得分:0)
你在某些地方做错了,我们需要更多关于查询和结果集的细节。
你没有在数组分配的任何地方使用$ total_spent_time。
$data[$row['activity_type']]['spent_time']['user'][$row['user']] = array('time' => $row['spent_time']);
因为你只使用$ row ['spent_time'],并且因为没有第二个循环if if语句只对每个用户执行一次($ row ['user'])
这就是你只得到1的原因值。