query("SELECT * FROM roster ORDER BY fullNameEn"); $roster_data = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { die("Database error: " . $e->getMessage()); } // --- CSV EXPORT --- $filename = "roster_export_" . date('Y-m-d') . ".csv"; header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename="' . $filename . '"'); $output = fopen('php://output', 'w'); // Add headers if (!empty($roster_data)) { $roster_data_with_daily_cost = []; foreach ($roster_data as $row) { $row['dailyCost'] = $row['totalMonthlyCost'] / 20; $roster_data_with_daily_cost[] = $row; } fputcsv($output, array_keys($roster_data_with_daily_cost[0])); foreach ($roster_data_with_daily_cost as $row) { fputcsv($output, $row); } } else { // Add headers even if there is no data $stmt = $pdo->query("SHOW COLUMNS FROM roster"); $columns = $stmt->fetchAll(PDO::FETCH_COLUMN); $columns[] = 'dailyCost'; fputcsv($output, $columns); } fclose($output); exit();