='$bgnDay' and date<= '$endDay' order by date ASC"; //echo "sumSql=$sumSql"; $res=mysqli_query($pssDbConn,$result); //echo mysqli_error($pssDbConn); $num=mysqli_num_rows($res); $allUssdCodes = []; // 用于存储所有记录的 ussd_code do{ if(!count($allUssdCodes)){ // 代表是第一条记录 // 初始化数组 for ($i = 1; $i <= 8; $i++) { $allUssdCodes[$i] = $selRow['ussd_code_' . $i]; $thisMonthTotalSessionNum[$i] = $selRow['session_num_' . $i]; $thisMonthTotalSessionDuration[$i] = $selRow['session_duration_'. $i]; $thisMonthTotalErrorTimeout[$i] = $selRow['error_timeout_'. $i]; $thisMonthTotalErrorSystem[$i] = $selRow['error_system_'. $i]; $thisMonthTotalErrorMessage[$i] = $selRow['error_message_'. $i]; } } else { // 剩余记录 // 创建USSD索引的映射 $codeToIndexMap = array_flip(array_filter($allUssdCodes)); for ($j = 1; $j <= 8; $j++) { $currentCode = $selRow['ussd_code_' . $j]; if (!$currentCode) continue; // 跳过空代码 echo "currentCode===$currentCode"; if (isset($codeToIndexMap[$currentCode])) { // 已存在的代码,累加统计数据 $index = $codeToIndexMap[$currentCode]; $thisMonthTotalSessionNum[$index] += $selRow['session_num_' . $j]; $thisMonthTotalSessionDuration[$index] += $selRow['session_duration_'. $j]; $thisMonthTotalErrorTimeout[$index] += $selRow['error_timeout_'. $j]; $thisMonthTotalErrorSystem[$index] += $selRow['error_system_'. $j]; $thisMonthTotalErrorMessage[$index] += $selRow['error_message_'. $j]; } else { //找一个空位存放 foreach ($allUssdCodes as $key => $value) { if (!$value) { $allUssdCodes[$key] = $currentCode; $codeToIndexMap[$currentCode] = $key; $thisMonthTotalSessionNum[$key] = $selRow['session_num_' . $j]; $thisMonthTotalSessionDuration[$key] = $selRow['session_duration_'. $j]; $thisMonthTotalErrorTimeout[$key] = $selRow['error_timeout_'. $j]; $thisMonthTotalErrorSystem[$key] = $selRow['error_system_'. $j]; $thisMonthTotalErrorMessage[$key] = $selRow['error_message_'. $j]; break; } } } } } }while($selRow=mysqli_fetch_array($res)); $file_name = 'PPS-USSD-Month.csv'; $file = fopen($file_name, 'w'); fputcsv($file, $title); // 写入标题行 for ($i = 1; $i <= 8; $i++) { $average=$thisMonthTotalSessionNum[$i]?$thisMonthTotalSessionDuration[$i]/$thisMonthTotalSessionNum[$i]:0; $tps=$thisMonthTotalSessionNum[$i]/(3600*24); fputcsv($file, [$i,$allUssdCodes[$i],$thisMonthTotalSessionNum[$i], $thisMonthTotalSessionDuration[$i],$thisMonthTotalErrorTimeout[$i], $thisMonthTotalErrorSystem[$i] ,$thisMonthTotalErrorMessage[$i],$average,$tps]); } fclose($file); // 检查文件是否存在 if (file_exists($file_name)) { header("Content-type: application/csv"); //use for download csv in https header('Expires: 0'); header('Pragma: public'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Cache-Control: public'); header("Content-Disposition: attachment; filename=$file_name"); readfile($file_name); unlink($file_name); } else { // 文件不存在时的处理 echo "Error: File does not exist."; } } else{ $result= $sumSql." date = '$selectedDate'"; //echo "sumSql=$sumSql"; $res=mysqli_query($pssDbConn,$result); echo mysqli_error($pssDbConn); $num=mysqli_num_rows($res); // 检查是否有记录 if ($num > 0) { // 读取第一条记录 $row = mysqli_fetch_array($res, MYSQLI_ASSOC); // 处理标题 $file_name = 'PPS-USSD.csv'; $file = fopen($file_name, 'w'); fputcsv($file, $title); // 写入标题行 for ($i = 1; $i <= 8; $i++) { $average=$row['session_num_' . $i]?$row['session_duration_' . $i]/$row['session_num_' . $i]:0; $tps=$row['session_num_' . $i]/(3600*24); fputcsv($file, [$i,$row['ussd_code_' . $i],$row['session_num_' . $i],$row['session_duration_' . $i],$row['error_timeout_' . $i],$row['error_system_' . $i],$row['error_message_' . $i],$average,$tps]); } fclose($file); // 检查文件是否存在 if (file_exists($file_name)) { header("Content-type: application/csv"); //use for download csv in https header('Expires: 0'); header('Pragma: public'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Cache-Control: public'); header("Content-Disposition: attachment; filename=$file_name"); readfile($file_name); unlink($file_name); } else { // 文件不存在时的处理 echo "Error: File does not exist."; } } } break; default: break; } ?>