}
 if ($skip === true) {
     $log->write("Skipping {$id}");
     flush();
     continue;
 }
 $class = explode('</td>', $class);
 foreach ($class as &$entry) {
     $entry = StringUtil::textFromHtml($entry);
 }
 $page = $curl->fetchPageAndLogin(OCI_SERVER . "/oci/resultDetail.jsp?course={$id}&term={$term}", null, false, true);
 $courseInfo = extractCourseInfo($page);
 $courseNames = new MysqlTable($mysqli, 'course_names');
 $existingEvaluationId = false;
 foreach ($courseInfo['course_codes']['listings'] as &$listing) {
     $courseNames->retrieve(array('subject', 'number', 'section'), array($listing['subject'], $listing['number'], $courseInfo['course_codes']['section']), array('course_id'));
     if ($courseNames->resultsExist) {
         $existingEvaluationId = $courseNames->info['course_id'];
         break;
     }
 }
 $courses = new MysqlTable($mysqli, 'courses');
 $infoToSet = extractFieldsFromArray(array('title', 'description', 'requirements', 'extra_info'), $courseInfo);
 $infoToSet['exam_group'] = $courseInfo['exam']['group'];
 if ($existingEvaluationId) {
     $infoToSet['id'] = $existingEvaluationId;
 }
 $courses->setInfoArray($infoToSet);
 $success = $courses->commit();
 if (!$success) {
     $infoToSet['description'] = mb_convert_encoding($infoToSet['description'], 'UTF-8', 'Windows-1252');
 $evaluationInfo['comments'] = array();
 foreach ($commentPages as &$qidNumber) {
     $page = $curl->fetchPageAndLogin("https://faculty.yale.edu/viewevals/Search/ViewAnswersByQuestion?subType=all&ap=0&qid={$qidPrefixes[$type]}{$qidNumber}&na=10000", null, false, true);
     if (empty($page)) {
         continue;
     }
     $comments = getCommentsFromPage($page);
     if (!empty($comments)) {
         $evaluationInfo['comments'][(int) $qidNumber] = $comments;
     }
 }
 // This part commits to the database
 $existingEvaluationId = false;
 $courseNames = new MysqlTable($mysqli, 'evaluation_course_names');
 foreach ($evaluationInfo['courses'] as &$course) {
     $courseNames->retrieve(array('subject', 'number', 'section', 'season'), array($course['subject'], $course['number'], $course['section'], $season), array('course_id'));
     if ($courseNames->resultsExist) {
         $existingEvaluationId = $courseNames->info['course_id'];
         break;
     }
 }
 $courses = new MysqlTable($mysqli, 'evaluation_courses');
 $infoToSet = $evaluationInfo['statistics'];
 $infoToSet['season'] = $evaluationInfo['season'];
 if ($existingEvaluationId) {
     $infoToSet['id'] = $existingEvaluationId;
 }
 $courses->setInfoArray($infoToSet);
 ProjectFunctions::assertAndPrint($courses->commit(), $courses);
 if (!$existingEvaluationId) {
     $existingEvaluationId = $courses->insertId;