query("UPDATE `results` SET `status`= '$val' WHERE id = '$id'"); echo ''; exit; } // Edit Result - Load data for editing $edit_mode = false; $edit_data = null; $edit_marks = []; if (isset($_GET['action']) && $_GET['action'] == 'edit' && isset($_GET['id'])) { $edit_id = mysqli_real_escape_string($con, $_GET['id']); $edit_query = $con->query("SELECT r.*, c.course_name FROM results r LEFT JOIN courses c ON r.course_id = c.id WHERE r.id = '$edit_id'"); if ($edit_query && $edit_query->num_rows > 0) { $edit_data = $edit_query->fetch_assoc(); $edit_mode = true; // Get existing marks $marks_query = $con->query("SELECT * FROM marks_table WHERE result_id = '$edit_id'"); while ($mark = $marks_query->fetch_assoc()) { $edit_marks[$mark['subject_id']] = $mark['marks']; } } } // Update Result if (isset($_POST['status']) && $_POST['status'] == 'update_result') { $result_id = mysqli_real_escape_string($con, $_POST['result_id']); $enrollment_no = mysqli_real_escape_string($con, $_POST['enrollment_no']); $roll_no = mysqli_real_escape_string($con, $_POST['roll_no']); $duration = mysqli_real_escape_string($con, $_POST['duration']); $duration_type = mysqli_real_escape_string($con, $_POST['duration_type']); $course_id = mysqli_real_escape_string($con, $_POST['course_id']); $grade = mysqli_real_escape_string($con, $_POST['grade']); $result = mysqli_real_escape_string($con, $_POST['result']); $issue_date = mysqli_real_escape_string($con, $_POST['issue_date']); $exam_month = mysqli_real_escape_string($con, $_POST['exam_month']); $exam_year = mysqli_real_escape_string($con, $_POST['exam_year']); $session = $exam_month . ' ' . $exam_year; // Update result $update = $con->query("UPDATE `results` SET `roll_no` = '$roll_no', `course_id` = '$course_id', `enrollment_no` = '$enrollment_no', `grade` = '$grade', `result` = '$result', `duration` = '$duration', `duration_type` = '$duration_type', `issue_date` = '$issue_date', `session` = '$session' WHERE id = '$result_id'"); if ($update) { // Delete old marks $con->query("DELETE FROM marks_table WHERE result_id = '$result_id'"); // Insert updated compulsory marks if (isset($_POST['subject_id']) && is_array($_POST['subject_id'])) { foreach ($_POST['subject_id'] as $index => $sub_id) { $marks = isset($_POST['marks'][$index]) ? mysqli_real_escape_string($con, $_POST['marks'][$index]) : 0; if ($marks !== '') { $con->query("INSERT INTO `marks_table` (`result_id`, `marks`, `subject_id`) VALUES ('$result_id', '$marks', '$sub_id')"); } } } // Insert updated optional marks if (isset($_POST['optional_subject_id']) && !empty($_POST['optional_subject_id']) && isset($_POST['optional_marks'])) { $optional_sub_id = mysqli_real_escape_string($con, $_POST['optional_subject_id']); $optional_marks = mysqli_real_escape_string($con, $_POST['optional_marks']); if ($optional_marks !== '') { $con->query("INSERT INTO `marks_table` (`result_id`, `marks`, `subject_id`) VALUES ('$result_id', '$optional_marks', '$optional_sub_id')"); } } echo ''; exit; } else { echo ''; } } // Create Result if (isset($_POST['status']) && $_POST['status'] == 'create_result') { $enrollment_no = mysqli_real_escape_string($con, $_POST['enrollment_no']); $roll_no = mysqli_real_escape_string($con, $_POST['roll_no']); $duration = mysqli_real_escape_string($con, $_POST['duration']); $duration_type = mysqli_real_escape_string($con, $_POST['duration_type']); $chk = $con->query("SELECT * FROM results WHERE (roll_no = '$roll_no' OR enrollment_no = '$enrollment_no') AND duration = '$duration' AND duration_type = '$duration_type'"); if (!($chk->num_rows)) { $course_id = mysqli_real_escape_string($con, $_POST['course_id']); $center_id = isset($_SESSION['center']['id']) ? $_SESSION['center']['id'] : ''; $grade = mysqli_real_escape_string($con, $_POST['grade']); $result = mysqli_real_escape_string($con, $_POST['result']); $issue_date = mysqli_real_escape_string($con, $_POST['issue_date']); $exam_month = mysqli_real_escape_string($con, $_POST['exam_month']); $exam_year = mysqli_real_escape_string($con, $_POST['exam_year']); $session = $exam_month . ' ' . $exam_year; $res = $con->query("INSERT INTO `results` (`roll_no`, `course_id`, `enrollment_no`, `center_id`, `grade`, `result`, `duration`, `duration_type`, `issue_date`, `session`) VALUES ('$roll_no', '$course_id', '$enrollment_no', '$center_id', '$grade', '$result', '$duration', '$duration_type', '$issue_date', '$session')"); if ($res) { $result_id = $con->insert_id; if (isset($_POST['subject_id']) && is_array($_POST['subject_id'])) { foreach ($_POST['subject_id'] as $index => $sub_id) { $marks = isset($_POST['marks'][$index]) ? mysqli_real_escape_string($con, $_POST['marks'][$index]) : 0; if ($marks !== '') { $con->query("INSERT INTO `marks_table` (`result_id`, `marks`, `subject_id`) VALUES ('$result_id', '$marks', '$sub_id')"); } } } if (isset($_POST['optional_subject_id']) && !empty($_POST['optional_subject_id']) && isset($_POST['optional_marks'])) { $optional_sub_id = mysqli_real_escape_string($con, $_POST['optional_subject_id']); $optional_marks = mysqli_real_escape_string($con, $_POST['optional_marks']); if ($optional_marks !== '') { $con->query("INSERT INTO `marks_table` (`result_id`, `marks`, `subject_id`) VALUES ('$result_id', '$optional_marks', '$optional_sub_id')"); } } echo ''; exit; } else { echo ''; } } else { echo ''; exit; } } // Delete Result if (isset($_GET['action']) && $_GET['action'] == 'del' && isset($_GET['id'])) { $id = mysqli_real_escape_string($con, $_GET['id']); $con->query("DELETE FROM results WHERE id = '$id'"); $con->query("DELETE FROM marks_table WHERE result_id = '$id'"); echo ''; exit; } $selected_enrollment = isset($_POST['enrollment_no']) ? $_POST['enrollment_no'] : ($edit_mode ? $edit_data['enrollment_no'] : ''); $selected_duration = isset($_POST['duration']) ? $_POST['duration'] : ($edit_mode ? $edit_data['duration'] : ''); $selected_duration_type = isset($_POST['duration_type']) ? $_POST['duration_type'] : ($edit_mode ? $edit_data['duration_type'] : ''); $selected_course_id = isset($_POST['course_id']) ? $_POST['course_id'] : ($edit_mode ? $edit_data['course_id'] : ''); $roll_no = isset($_POST['roll_no']) ? $_POST['roll_no'] : ($edit_mode ? $edit_data['roll_no'] : ''); $existing_results = 0; ?>

Editing

query($student_query); if ($student->num_rows): ?>
query("SELECT s.*, c.course_name, c.id as course_id, c.duration as course_duration, c.duration_type as course_duration_type FROM students s LEFT JOIN courses c ON s.course_id = c.id WHERE s.enrollment_no = '$selected_enrollment' AND s.status = '1'"); if ($stu_query && $stu_query->num_rows > 0) { $show_details = true; $stu_data = $stu_query->fetch_assoc(); $course_id = $stu_data['course_id']; $course_name = $stu_data['course_name']; // Auto-fill roll_no if not manually modified if (!isset($_POST['roll_no']) || $_POST['roll_no'] === '') { $roll_no = $stu_data['roll_no']; } $duration = !empty($stu_data['course_duration']) ? $stu_data['course_duration'] : $stu_data['duration']; $duration_type = !empty($stu_data['course_duration_type']) ? $stu_data['course_duration_type'] : $stu_data['duration_type']; $exam_month = isset($_POST['exam_month']) ? $_POST['exam_month'] : date('F'); $exam_year = isset($_POST['exam_year']) ? $_POST['exam_year'] : date('Y'); $count_query = $con->query("SELECT COUNT(*) as total FROM results WHERE enrollment_no = '$selected_enrollment'"); $count_data = $count_query->fetch_assoc(); $existing_results = $count_data['total']; } } if ($show_details): ?>
0): ?> * Already created: result(s)
query("SELECT * FROM subjects WHERE course_id = '$course_id' AND duration_type = '$duration_type' AND duration = '$duration' AND (is_optional = 0 OR is_optional IS NULL) ORDER BY subject_name ASC"); $optional_query = $con->query("SELECT * FROM subjects WHERE course_id = '$course_id' AND duration_type = '$duration_type' AND duration = '$duration' AND is_optional = 1 ORDER BY subject_name ASC"); $has_compulsory = ($compulsory_query && $compulsory_query->num_rows > 0); $has_optional = ($optional_query && $optional_query->num_rows > 0); if ($has_compulsory || $has_optional): ?>
Compulsory Subjects Required
fetch_assoc()) { $existing_mark = isset($edit_marks[$subject['id']]) ? $edit_marks[$subject['id']] : ''; ?>
S.No. Subject Name Code Max Marks Min Marks Obtained Marks *
Optional Subjects Choose Any One
Note: Select only ONE optional subject and enter marks. Other optional subjects are not required.
fetch_assoc()) { // Check if this optional was previously selected $is_selected = isset($edit_marks[$opt_subject['id']]); if ($is_selected) $selected_optional_id = $opt_subject['id']; $existing_mark = $is_selected ? $edit_marks[$opt_subject['id']] : ''; ?>
Select S.No. Subject Name Code Max Marks Min Marks Obtained Marks
> value="" style="width:100px; display:inline-block;">
No Students Available
Please add students first to create results.

Generated Results

query("SELECT r.*, c.course_name FROM results r LEFT JOIN courses c ON r.course_id = c.id ORDER BY r.id DESC"); if ($get->num_rows): $sr_no = 1; while ($g = $get->fetch_assoc()): $statusBtn = $g['status'] ? 'label-gsos-success' : 'label-gsos-danger'; $statusText = $g['status'] ? 'Active' : 'Inactive'; $resultClass = ''; if ($g['result'] == 'Pass') $resultClass = 'label-gsos-success'; elseif ($g['result'] == 'Fail') $resultClass = 'label-gsos-danger'; else $resultClass = 'label-gsos-warning'; // Parse session for exam month/year $session_parts = explode(' ', $g['session']); $exam_month_display = $session_parts[0] ?? 'N/A'; $exam_year_display = $session_parts[1] ?? 'N/A'; ?>
# Enrollment No. Roll No. Course Duration Exam Month Exam Year Grade Result Issue Date Status Actions
No Results Generated Yet