public static function updateStudents($appointmentId, $oldStudentsIds, $newStudentsId) { if (!isset($newStudentsId) || empty($newStudentsId)) { throw new Exception("Data have been malformed."); } Student::validateIds($newStudentsId); $update = false; $totStudents = sizeof($newStudentsId); for ($i = 0; $i < $totStudents; $i++) { $newStudentId = $newStudentsId[$i]; $oldStudentId = $oldStudentsIds[$i][AppointmentHasStudentFetcher::DB_COLUMN_STUDENT_ID]; if (strcmp($newStudentId, $oldStudentId) !== 0) { if (self::hasStudentId($newStudentId, $oldStudentsIds)) { throw new Exception("Student already exist on appointment." . var_dump($oldStudentsIds)); } } } // check if there is a need to update data for ($i = 0; $i < $totStudents; $i++) { $newStudentId = $newStudentsId[$i]; $oldStudentId = $oldStudentsIds[$i][AppointmentHasStudentFetcher::DB_COLUMN_STUDENT_ID]; if (strcmp($newStudentId, $oldStudentId) !== 0) { AppointmentHasStudentFetcher::updateStudentId($oldStudentId, $newStudentId, $appointmentId); $update = true; } } return $update; }