connect_error) { die("Connection failed: " . $db->connect_error); } $survey_id = $_GET['id'] ?? 0; if (!$survey_id) { die("Invalid survey ID"); } // Fetch survey title $survey = $db->query("SELECT title FROM surveys WHERE id = $survey_id")->fetch_assoc(); $survey_title = $survey['title'] ?? 'Unknown Survey'; // Define statuses $statuses = ['Incomplete', 'Terminate', 'Overquota', 'QualityTerminate', 'Complete']; // Fetch appended values for each status $data = []; foreach ($statuses as $status) { $result = $db->query("SELECT appended_value FROM responses WHERE survey_id = $survey_id AND status = '$status'"); $data[$status] = $result->fetch_all(MYSQLI_ASSOC); } // Determine the maximum number of rows $max_rows = max(array_map('count', $data)); // Prepare CSV data $csv_data = [$statuses]; // First row with status headers for ($i = 0; $i < $max_rows; $i++) { $row = []; foreach ($statuses as $status) { $row[] = $data[$status][$i]['appended_value'] ?? ''; } $csv_data[] = $row; } // Set headers for CSV download header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="' . $survey_title . '_export.csv"'); // Output CSV data $output = fopen('php://output', 'w'); foreach ($csv_data as $row) { fputcsv($output, $row); } fclose($output); exit; ?>