Пример #1
0
<?php

include_once '../lib/util.php';
$db = new DBAdmin();
$db->truncate('schedule');
echo 'Updating `schedule` table ... ';
$q = $db->selectAll('htmldata');
$db->begin();
while ($row = $q->fetch_assoc()) {
    $schedules = trim(kana($row['schedule']));
    if ($schedules === '') {
        $db->insert('schedule', array('id' => $row['id']));
    }
    foreach (explode(' ', $schedules) as $schedule) {
        if ($schedule) {
            preg_match('/^(?:(集)|(日|月|火|水|木|金|土))?(?:(?:(\\d+)|(不定))' . '(後)?(?:~(\\d+)(前)?)?)?$/', $schedule, $m);
            if ($m) {
                $m = array_pad($m, 8, 0);
                for ($i = (int) $m[3]; $i <= max((int) $m[6], (int) $m[3]); $i++) {
                    $data = array('id' => $row['id'], 'day' => $m[2] ? mb_strpos('日月火水木金土', $m[2]) : NULL, 'period' => $i ? $i : NULL, 'early' => $i == $m[6] && (bool) $m[7], 'late' => $i == $m[3] && (bool) $m[5], 'intensive' => (bool) $m[1], 'irregular' => (bool) $m[4], 'description' => $schedule);
                    $db->insert('schedule', $data);
                }
            } else {
                echo "{$schedule}\n";
            }
        }
    }
    echo "{$row['id']}";
}
$db->commit();
$db->close();
Пример #2
0
<?php

include_once '../lib/util.php';
$db = new DBAdmin();
echo 'Updating `json` table ... ';
$q = $db->selectAll('summary');
$db->begin();
while ($row = $q->fetch_assoc()) {
    $department = $db->single('SELECT * FROM `department`
		WHERE `department_id` = ?', $row['department_id']);
    $icode = $db->single('SELECT `internal_code` FROM `list`
		WHERE `id` = ?', $row['id']);
    $teacher = array_map(function ($t) {
        return implode($t);
    }, $db->query('SELECT `staff`.`name` FROM `teacher`
		INNER JOIN `staff` ON `staff`.`staff_id` = `teacher`.`staff_id`
		WHERE `id` = ? ORDER BY `teacher`.`main` DESC', $row['id'])->fetch_all(MYSQL_ASSOC));
    $semester = NULL;
    if (is_null($row['semester_id']) === FALSE) {
        $semester = $db->single('SELECT `description` FROM `semester`
			WHERE `semester_id` = ?', $row['semester_id']);
    }
    $schedule = array_map(function ($a) {
        return array('day' => is_null($a['day']) ? NULL : (int) $a['day'], 'period' => is_null($a['period']) ? NULL : (int) $a['period'], 'early' => (bool) $a['early'], 'late' => (bool) $a['late'], 'intensive' => (bool) $a['intensive'], 'irregular' => (bool) $a['irregular']);
    }, $db->query('SELECT * FROM `schedule` WHERE `id` = ?', $row['id'])->fetch_all(MYSQL_ASSOC));
    $classroom = $db->query('SELECT `department`.`name` as `place`,
		`department`.`department_code` as `place_code`, `room`.`name` as `name`
		FROM `classroom`INNER JOIN `room` ON
		`room`.`room_id` = `classroom`.`room_id` INNER JOIN `department`
		ON `department`.`department_id` = `room`.`department_id`
		WHERE `classroom`.`id` = ?', $row['id'])->fetch_all(MYSQL_ASSOC);