$courseNames->clearInfo(); $infoToSet = array_merge(extractFieldsFromArray(array('subject', 'number'), $courseInfo['course_codes']['listings'][0]), extractFieldsFromArray(array('section', 'oci_id'), $courseInfo['course_codes'])); $infoToSet['course_id'] = $existingEvaluationId; $courseNames->setInfoArray($infoToSet); ProjectFunctions::assertAndPrint($courseNames->commit(), $courseNames); $courseAreas = new MysqlTable($mysqli, 'course_areas'); ProjectFunctions::assertAndPrint(addCourseItemsMappings($courseAreas, $existingEvaluationId, 'area', $courseInfo['areas']), $courseAreas); $courseSkills = new MysqlTable($mysqli, 'course_skills'); ProjectFunctions::assertAndPrint(addCourseItemsMappings($courseSkills, $existingEvaluationId, 'skill', $courseInfo['skills']), $courseSkills); $courseProfessors = new MysqlTable($mysqli, 'course_professors'); ProjectFunctions::assertAndPrint(addCourseItemsMappings($courseProfessors, $existingEvaluationId, 'professor', $courseInfo['professors']), $courseProfessors); if ($courseInfo['exam']['group'] !== 0) { $examGroups = new MysqlTable($mysqli, 'exam_groups'); $infoToSet = extractFieldsFromArray(array('date', 'time'), $courseInfo['exam']); $infoToSet['id'] = $courseInfo['exam']['group']; $examGroups->setInfoArray($infoToSet); ProjectFunctions::assertAndPrint($examGroups->commit(), $examGroups); } $courseSessions = new MysqlTable($mysqli, 'course_sessions'); $courseSessions->addCond('course_id', $existingEvaluationId); ProjectFunctions::assertAndPrint($courseSessions->executeDeleteQuery(), $courseSessions); $courseSessions->clearSelect(); $courseSessions->setInfo('course_id', $existingEvaluationId); foreach ($courseInfo['sessions'] as &$session) { $infoToSet = extractFieldsFromArray(array('start_time', 'end_time', 'location'), $session); $infoToSet['course_id'] = $existingEvaluationId; foreach ($session['days'] as &$day) { $infoToSet['day_of_week'] = $day; $courseSessions->setInfoArray($infoToSet); ProjectFunctions::assertAndPrint($courseSessions->commit(), $courseSessions); }
$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; } foreach ($evaluationInfo['courses'] as &$course) { $courseNames->clearInfo(); $infoToSet = extractFieldsFromArray(array('subject', 'number', 'section'), $course); $infoToSet['course_id'] = $existingEvaluationId; $infoToSet['season'] = $evaluationInfo['season']; $courseNames->setInfoArray($infoToSet); ProjectFunctions::assertAndPrint($courseNames->commit(), $courseNames); } $evaluationComments = new MysqlTable($mysqli, 'evaluation_comments'); foreach ($evaluationInfo['comments'] as $type => &$comments) { $success = addCourseItemsMappings($evaluationComments, $existingEvaluationId, 'comment', $comments, array('type' => $type)); if (!$success) { echo "php FetchRatings.php --startsubject {$rawCourseSubject} --startnumber {$thisListing['number']} --startsection {$thisListing['section']} --startseason {$season}"; } ProjectFunctions::assertAndPrint($success, $evaluationComments->error); } $curCourse = $evaluationInfo['courses'][0]; $log->write("{$pid} Done {$rawCourseSubject} {$thisListing['number']} {$thisListing['section']} {$season} {$crn}", E_NOTICE, $logFlags); } if (isset($cmd['flags']['--singlesubject'])) { exit;