= '" . escape($conn, $date_from) . "'"; } if (!empty($date_to)) { $sql .= " AND DATE(s.created_at) <= '" . escape($conn, $date_to) . "'"; } $sql .= " ORDER BY s.created_at DESC"; $result = query($conn, $sql); $students = []; while ($row = mysqli_fetch_assoc($result)) { $students[] = $row; } // Generate PDF if ($report_type === 'pdf') { require_once '../vendor/autoload.php'; // If using TCPDF or Dompdf // For now, we'll create a simple HTML report that can be printed // In production, you'd use a PDF library like TCPDF or Dompdf $_SESSION['report_data'] = [ 'students' => $students, 'filters' => [ 'status' => $status_filter, 'year_level' => $year_level_filter, 'course' => $course_filter, 'date_from' => $date_from, 'date_to' => $date_to ] ]; header('Location: print_report.php?type=pdf'); exit(); } // Generate Excel elseif ($report_type === 'excel') { require_once '../includes/PHPExcel.php'; // Or use PhpSpreadsheet // Create Excel file $filename = "students_report_" . date('Y-m-d_H-i-s') . ".xlsx"; header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment; filename="' . $filename . '"'); // For now, create CSV as fallback outputCSV($students); exit(); } // Print view elseif ($report_type === 'print') { $_SESSION['report_data'] = [ 'students' => $students, 'filters' => [ 'status' => $status_filter, 'year_level' => $year_level_filter, 'course' => $course_filter, 'date_from' => $date_from, 'date_to' => $date_to ] ]; header('Location: print_report.php'); exit(); } } // Get courses for filter dropdown $courses = []; $result = query($conn, "SELECT id, code, name FROM courses WHERE status = 1 ORDER BY code"); while ($row = mysqli_fetch_assoc($result)) { $courses[] = $row; } // Get departments $departments = []; $result = query($conn, "SELECT id, code, name FROM departments WHERE status = 1 ORDER BY code"); while ($row = mysqli_fetch_assoc($result)) { $departments[] = $row; } function outputCSV($data) { $output = fopen('php://output', 'w'); // Header row fputcsv($output, [ 'Student ID', 'Full Name', 'Gender', 'Year Level', 'Course', 'Department', 'Email', 'Contact Number', 'Status', 'Date Created' ]); // Data rows foreach ($data as $student) { fputcsv($output, [ $student['student_id'], $student['full_name'], $student['gender'], 'Year ' . $student['year_level'], $student['course_code'] . ' - ' . $student['course_name'], $student['department_name'], $student['email'], $student['contact_number'], $student['status'] == 1 ? 'Active' : 'Inactive', date('Y-m-d', strtotime($student['created_at'])) ]); } fclose($output); } include '../includes/header.php'; ?>
Generate and export student reports in various formats.
Generate a printable student list
Download as Excel spreadsheet
Generate detailed PDF report