mysql クエリからデータを選択する php スクリプト内でスプレッドシートを作成しようとしています。
クエリは機能し、以下のスクリプトは、結果セット全体を次のようにスプレッドシートに挿入するという意味で機能します。
私が理解できない唯一のことは、ユーザーごとに 4 つの列 (C、D、E、および F) の合計を合計できるように配列ループを変更する方法です。基本的に、ユーザー ID 48 の最後のレコードであることを認識して、合計の行を挿入し、次のユーザーに移動できるようにする必要があります。
私はそれがかなり簡単であるべきだと感じていますが、今はそれを理解できないようです. 他の唯一の要因は、このクエリを実行すると、すべてのユーザーが最大 5 つのレコードを持つことができるため、ユーザー 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++;
}