Student Result Portal

Filter Student Result

" required>

= 70) { return array('grade' => 'A', 'remark' => 'Excellent', 'class' => 'grade-A'); } elseif ($score >= 60) { return array('grade' => 'B', 'remark' => 'Good', 'class' => 'grade-B'); } elseif ($score >= 55) { return array('grade' => 'C', 'remark' => 'Credit', 'class' => 'grade-C'); } elseif ($score >= 50) { return array('grade' => 'D', 'remark' => 'Pass', 'class' => 'grade-D'); } else { return array('grade' => 'F', 'remark' => 'Fail', 'class' => 'grade-F'); } } // Function to determine overall grade function getOverallGrade($average) { if ($average >= 70) return 'A'; elseif ($average >= 60) return 'B'; elseif ($average >= 55) return 'C'; elseif ($average >= 50) return 'D'; else return 'F'; } if(isset($_POST['filter'])) { // Debug: Show what we're receiving echo ""; $regno = $_POST['regno']; $acyear = $_POST['acyear']; $term = $_POST['term']; $klass = $_POST['klass']; try { // Get student information from students_info table $student_info_query = "SELECT * FROM students_info WHERE regno = :regno"; $student_info_stmt = $DBcon->prepare($student_info_query); $student_info_stmt->execute([':regno' => $regno]); $student_info = $student_info_stmt->fetch(PDO::FETCH_ASSOC); // First, let's check if the student exists with these criteria $check_query = "SELECT COUNT(*) as count FROM marks WHERE regno = :regno AND acyear = :acyear AND term = :term AND klass = :klass"; $check_stmt = $DBcon->prepare($check_query); $check_stmt->execute([ ':regno' => $regno, ':acyear' => $acyear, ':term' => $term, ':klass' => $klass ]); $check_result = $check_stmt->fetch(PDO::FETCH_ASSOC); echo ""; if($check_result['count'] > 0) { // Get student's results $student_query = "SELECT * FROM marks WHERE regno = :regno AND acyear = :acyear AND term = :term AND klass = :klass"; $student_stmt = $DBcon->prepare($student_query); $student_stmt->execute([ ':regno' => $regno, ':acyear' => $acyear, ':term' => $term, ':klass' => $klass ]); $student_results = $student_stmt->fetchAll(PDO::FETCH_ASSOC); // Get all students in the same class for comparison $class_query = "SELECT DISTINCT regno FROM marks WHERE acyear = :acyear AND term = :term AND klass = :klass"; $class_stmt = $DBcon->prepare($class_query); $class_stmt->execute([ ':acyear' => $acyear, ':term' => $term, ':klass' => $klass ]); $class_students = $class_stmt->fetchAll(PDO::FETCH_ASSOC); // Calculate class highest and lowest scores per subject $subject_stats = array(); $subjects_query = "SELECT DISTINCT subject FROM marks WHERE acyear = :acyear AND term = :term AND klass = :klass"; $subjects_stmt = $DBcon->prepare($subjects_query); $subjects_stmt->execute([ ':acyear' => $acyear, ':term' => $term, ':klass' => $klass ]); $subjects = $subjects_stmt->fetchAll(PDO::FETCH_ASSOC); foreach($subjects as $subject_row) { $subject = $subject_row['subject']; $stats_query = "SELECT MAX(test+exam) as max_score, MIN(test+exam) as min_score FROM marks WHERE acyear = :acyear AND term = :term AND klass = :klass AND subject = :subject"; $stats_stmt = $DBcon->prepare($stats_query); $stats_stmt->execute([ ':acyear' => $acyear, ':term' => $term, ':klass' => $klass, ':subject' => $subject ]); $stats_row = $stats_stmt->fetch(PDO::FETCH_ASSOC); $subject_stats[$subject] = array( 'max' => $stats_row['max_score'] ?? 0, 'min' => $stats_row['min_score'] ?? 0 ); } // Calculate student averages for class position $student_averages = array(); foreach($class_students as $class_student) { $student_regno = $class_student['regno']; $avg_query = "SELECT AVG(test+exam) as avg_score FROM marks WHERE regno = :regno AND acyear = :acyear AND term = :term AND klass = :klass"; $avg_stmt = $DBcon->prepare($avg_query); $avg_stmt->execute([ ':regno' => $student_regno, ':acyear' => $acyear, ':term' => $term, ':klass' => $klass ]); $avg_row = $avg_stmt->fetch(PDO::FETCH_ASSOC); $student_averages[$student_regno] = $avg_row['avg_score'] ?? 0; } // Sort students by average (descending) arsort($student_averages); // Find current student's position $position = 1; foreach($student_averages as $reg => $avg) { if($reg == $regno) { break; } $position++; } // Calculate student's total average $student_total = 0; $subject_count = count($student_results); foreach($student_results as $row) { $student_total += ($row['test'] + $row['exam']); } $student_average = $subject_count > 0 ? $student_total / $subject_count : 0; ?>

Pupil's Progress Report Sheet

Holy Ghost Juniorate

Pupil's Progress Report Sheet


A (70 and above)
B (60 - 69)
C (55 - 59)
D (50 - 54)
F (49 and below)
Student Photo
No Photo

Student Name:

Registration No:

Academic Year:

Class:

Term:

Admission Year:

Class Position
of
Average Score

%

Total Score

Overall Grade

SUBJECT TEST SCORE EXAM SCORE TOTAL CLASS HIGHEST CLASS LOWEST GRADE REMARK
Total Score:
Number of Subjects:
Average Score: %
Overall Grade:

_________________________

Class Teacher

_________________________

Principal

_________________________

Date:

OFFICIAL STAMP AREA

No results found for the selected criteria. Please check:
'; echo '
'; echo 'Registration Number: ' . $regno . '
'; echo 'Academic Year: ' . $acyear . '
'; echo 'Term: ' . $term . '
'; echo 'Class: ' . $klass . '
'; echo 'Make sure the student has marks entered for these criteria.'; echo '
'; } } catch(PDOException $e) { echo '
Database error: ' . $e->getMessage() . '
'; } } ?>