/home/techb158/workloadmatch.com/Manager
Edit: /home/techb158/workloadmatch.com/Manager/delete_duplicate_assignments.php (2537B)
false, 'message' => 'Missing required parameters.']);
$mysqli->close();
exit;
}
$teacherID = (int)$_POST['teacher_id'];
$courseID = (int)$_POST['course_id'];
$groupID = (int)$_POST['group_id'];
$programID = (int)$_POST['program_id'];
$firstID = isset($_POST['first_id']) ? (int)$_POST['first_id'] : 0;
// Delete all duplicate assignments for this combination except the first one
if ($firstID > 0) {
$query = "DELETE FROM teacher_course_assignments
WHERE Teacher_ID = ? AND Course_ID = ? AND Group_ID = ? AND Program_ID = ?
AND Assignment_ID > ?";
$stmt = $mysqli->prepare($query);
if (!$stmt) {
echo json_encode(['success' => false, 'message' => 'Error preparing delete query: ' . $mysqli->error]);
$mysqli->close();
exit;
}
$stmt->bind_param("iiiii", $teacherID, $courseID, $groupID, $programID, $firstID);
} else {
// Fallback: delete all but keep one (keep the one with the smallest ID)
// Use a derived table to avoid MySQL "can't specify target table" error
$query = "DELETE FROM teacher_course_assignments
WHERE Teacher_ID = ? AND Course_ID = ? AND Group_ID = ? AND Program_ID = ?
AND Assignment_ID NOT IN (
SELECT aid FROM (
SELECT MIN(tca2.Assignment_ID) AS aid FROM teacher_course_assignments tca2
WHERE tca2.Teacher_ID = ? AND tca2.Course_ID = ? AND tca2.Group_ID = ? AND tca2.Program_ID = ?
) AS keep_ids
)";
$stmt = $mysqli->prepare($query);
if (!$stmt) {
echo json_encode(['success' => false, 'message' => 'Error preparing delete query: ' . $mysqli->error]);
$mysqli->close();
exit;
}
$stmt->bind_param("iiiiiiii", $teacherID, $courseID, $groupID, $programID, $teacherID, $courseID, $groupID, $programID);
}
if ($stmt->execute()) {
$affected = $stmt->affected_rows;
echo json_encode(['success' => true, 'message' => 'Successfully removed ' . $affected . ' duplicate assignment(s).']);
} else {
echo json_encode(['success' => false, 'message' => 'Error executing delete: ' . $stmt->error]);
}
$stmt->close();
$mysqli->close();
?>