= 90) return 'A+'; elseif ($percentage >= 80) return 'A'; elseif ($percentage >= 70) return 'B+'; elseif ($percentage >= 60) return 'B'; elseif ($percentage >= 50) return 'C'; elseif ($percentage >= 40) return 'D'; else return 'F'; } } // Superscript function (Ordinal suffix) if (!function_exists('sup')) { function sup($i) { $suffix = ($i == 1) ? 'st' : (($i == 2) ? 'nd' : (($i == 3) ? 'rd' : 'th')); return '' . $suffix . ''; } } // Fallback values $enroll_no = $enroll_no ?? 'N/A'; $name = $name ?? 'N/A'; $father = $father ?? 'N/A'; $mother = $mother ?? 'N/A'; $dob = $dob ?? 'N/A'; $roll_no = $roll_no ?? 'N/A'; $course_name = $course_name ?? 'N/A'; $course_duration = $course_duration ?? $duration ?? ''; $course_duration_type = $course_duration_type ?? $duration_type ?? ''; $session = $session ?? 'N/A'; $isu = $isu ?? 'N/A'; $photo = $photo ?? ''; $serial_no = $serial_no ?? ''; $grade = $grade ?? 'F'; $res = $res ?? 'N/A'; $calculated_grade = $grade; // Default fallback initialization // Check if database connection exists if (!isset($con) || !$con) { die('

Database Connection Error

Could not connect to database.

'); } // Background Image Path & Cache Prevention $bg_image = 'format/marksheet.jpg'; if (!file_exists($bg_image)) $bg_image = '../format/marksheet.jpg'; if (!file_exists($bg_image)) $bg_image = 'admin/format/marksheet.jpg'; // Add version parameter to force browser to load updated image $bg_image_url = file_exists($bg_image) ? $bg_image . '?v=' . filemtime($bg_image) : $bg_image . '?v=' . time(); // Marks Fetching Logic $subjectMarks = []; $totalObtainMarks = 0; $totalMaxMarks = 0; $hasMarks = false; if (!empty($serial_no)) { $marks_query = "SELECT m.*, s.subject_name, s.code, s.max_marks, s.min_marks FROM marks_table m LEFT JOIN subjects s ON m.subject_id = s.id WHERE m.result_id = ? ORDER BY s.subject_name ASC"; if ($stmt = $con->prepare($marks_query)) { $stmt->bind_param("s", $serial_no); $stmt->execute(); $marks = $stmt->get_result(); if ($marks && $marks->num_rows > 0) { $hasMarks = true; while ($m = $marks->fetch_assoc()) { $subjectName = $m['subject_name'] ?? 'Unknown Subject'; $code = $m['code'] ?? 'N/A'; $maxMarks = floatval($m['max_marks'] ?? 100); $minMarks = floatval($m['min_marks'] ?? 33); $obtainMarks = floatval($m['marks'] ?? 0); if (!isset($subjectMarks[$subjectName])) { $subjectMarks[$subjectName] = [ 'code' => $code, 'max_marks' => $maxMarks, 'min_marks' => $minMarks, 'obtain_marks' => 0, ]; } $subjectMarks[$subjectName]['obtain_marks'] += $obtainMarks; $totalObtainMarks += $obtainMarks; $totalMaxMarks += $maxMarks; } } $stmt->close(); } } $percentage = ($totalMaxMarks > 0) ? ($totalObtainMarks / $totalMaxMarks * 100) : 0; if ($hasMarks) { $calculated_grade = my_grade($percentage); } ?> Marksheet | <?= htmlspecialchars($enroll_no) ?>
Marksheet Background
Student Photo
No Photo
Available
Student Name:
Father's Name:
Mother's Name:
Date of Birth:
Course Name:
Roll No:
Enrollment No:
Duration:
Session:
0): ?>
$data): $rowCount++; ?> '; $rowCount++; } ?>
Code Subject Name Max Marks Min Marks Obtain Marks
     
Total Marks /
Grade Percentage %
Important Instructions & Evaluation Rules
  • Grading Scale: A+ (90% & Above), A (80% - 89%), B+ (70% - 79%), B (60% - 69%), C (50% - 59%), D (40% - 49%), F (Below 40% - Fail).
  • Passing Requirement: Minimum aggregate pass percentage required is 40% in theory and practical components.
  • Verification & Disclaimer: This statement of marks is computer generated. Any tampering, erasure, or unauthorized alteration renders this document null and void.