我正在尝试在从 mysql 查询中选择数据的 php 脚本中创建一个电子表格。
查询有效,并且我的以下脚本有效,因为它将我的整个结果集插入到我的电子表格中,如下所示:
我唯一不知道的是如何修改数组循环,以便我可以按用户汇总 4 列(C、D、E 和 F)的总数。本质上,它需要意识到它位于用户 ID 48 的最后一条记录中,因此我可以插入一行总计,然后移动到下一个用户。
我觉得它应该相当简单,但我现在似乎无法理解它。唯一的另一个因素是,当此查询运行时,每个用户最多可以有 5 条记录,因此我可以使用 USER ID 来关联用户,但如果有意义的话,记录将取决于 ID 和日期。
在为下一个用户编写信息之前,如何按用户分组并汇总他们的人数?
$sql = "
select
concat(u.first_name, ' ', u.last_name) as Name,
t.ext_id as ID,
t.total_talk_time_minutes as TalkTime,
t.total_outbound as Outbound,
t.total_inbound as Inbound,
t.dealers_contacted as Dealers,
t.date_of_report as Date
From
ambition.ambition_totals t
INNER JOIN
ambition.ambition_users u
ON
t.extension = u.extension
where
date_of_report
between
curdate() - interval 5 day and curdate()" or die(mysqli_error( $conn));
$result=mysqli_query($conn,$sql);
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Name');
$sheet->setCellValue('B1', 'User ID');
$sheet->setCellValue('C1', 'Talk Time Per Call');
$sheet->setCellValue('D1', 'Outbound Calls');
$sheet->setCellValue('E1', 'Inbound Calls');
$sheet->setCellValue('F1', 'Dealer Contacts');
$sheet->setCellValue('G1', 'Date');
$rowNumber = 2;
while($row = mysqli_fetch_assoc($result))
{
$col = 'A';
foreach($row as $cell){
$sheet -> setCellValue($col.$rowNumber, $cell);
$col++;
}
$rowNumber++;
}