This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. */ function db_student_new($matrikelnummer,$student) { date_default_timezone_set("UTC"); $json_student_add = array ( "time" => date('Y-m-d H:i:s', time()), "cmd" => "student_new", "matrikelnummer" => $matrikelnummer, "vorname" => $student["vorname"], "nachname" => $student["nachname"], "noten" => $student["noten"] ); $json_string = json_encode($json_student_add, JSON_UNESCAPED_UNICODE)."\n"; $fh = fopen("database.json", "a"); fwrite($fh,$json_string); fclose($fh); //echo $json_string; } function db_student_add_fach($matrikelnummer,$fach) { date_default_timezone_set("UTC"); $cmd = array ( "time" => date('Y-m-d H:i:s', time()), "cmd" => "student_add_fach", "matrikelnummer" => $matrikelnummer, "fach" => $fach ); $json_string = json_encode($cmd, JSON_UNESCAPED_UNICODE)."\n"; $fh = fopen("database.json", "a"); fwrite($fh,$json_string); fclose($fh); } function db_student_update_note($matrikelnummer,$fach,$teilpruefung,$note) { date_default_timezone_set("UTC"); $cmd = array ( "time" => date('Y-m-d H:i:s', time()), "cmd" => "note_upd", "fach" => $fach, "teilpruefung" => $teilpruefung, "note" => $note, "matrikelnummer" => $matrikelnummer ); $json_string = json_encode($cmd, JSON_UNESCAPED_UNICODE)."\n"; $fh = fopen("database.json", "a"); fwrite($fh,$json_string); fclose($fh); } function db_group_new($semester,$fach,$gname,$teilnehmerarray) { date_default_timezone_set("UTC"); $cmd = array ( "time" => date('Y-m-d H:i:s', time()), "cmd" => "group_new", "semester" => $semester, "fach" => $fach, "name" => $gname, "teilnehmer" => $teilnehmerarray ); $json_string = json_encode($cmd, JSON_UNESCAPED_UNICODE)."\n"; $fh = fopen("database.json", "a"); fwrite($fh,$json_string); fclose($fh); //echo $json_string; } function db_read () { global $students,$groups,$pfp; $fh = fopen("database.json", "r"); if ($fh === FALSE) { echo "

Cannot open database.json

"; return FALSE; } while ($line = fgets($fh)) { $cmd = json_decode($line,JSON_UNESCAPED_UNICODE); switch ($cmd["cmd"]) { case "student_new" : $matrikelnummer = $cmd["matrikelnummer"]; if (empty($students[$matrikelnummer])) { $students[$matrikelnummer]["vorname"] = $cmd["vorname"]; $students[$matrikelnummer]["nachname"] = $cmd["nachname"]; $students[$matrikelnummer]["noten"] = $cmd["noten"]; $fach = array_key_first($cmd["noten"]); $students[$matrikelnummer]["history"][] = $cmd["time"]." student new with ".$fach; } else { echo "

ERROR: Student ",$matrikelnummer," is already in database.

"; } break; case "student_add_fach" : $matrikelnummer = $cmd["matrikelnummer"]; $fach = $cmd["fach"]; if (empty($students[$matrikelnummer])) { echo "

ERROR: Cannot add $fach to $matrikelnummer as student is not in database.

"; } elseif (array_key_exists($fach,$students[$matrikelnummer]["noten"])) { echo "

ERROR: $fach already exists for $matrikelnummer in database.

"; } else { $students[$matrikelnummer]["noten"][$fach] = []; $students[$matrikelnummer]["history"][] = $cmd["time"]." add ".$fach; } break; case "group_new" : $semester = $cmd["semester"]; $fach = $cmd["fach"]; $gname = $cmd["name"]; if (empty($groups[$semester][$fach][$gname])) { $groups[$semester][$fach][$gname] = $cmd["teilnehmer"]; } else { echo "

ERROR: Group $gname for $fach in $semester is already in database.

"; } break; case "note_upd": $fach = $cmd["fach"]; $teilpruefung = $cmd["teilpruefung"]; $matrikelnummer = $cmd["matrikelnummer"]; $note = $cmd["note"]; $students[$matrikelnummer]["noten"][$fach][$teilpruefung] = $note; $students[$matrikelnummer]["history"][] = $cmd["time"]." ".$fach."/".$teilpruefung.": ".$note; break; default : echo "

ERROR: database cmd ", $cmd["cmd"],"is unknown.

"; } } fclose($fh); } // Search user with name and return matrikelnummer if found function db_find_user($vorname,$nachname) { global $students; foreach ($students as $matrikelnummer => $student) { if ($student["vorname"] === $vorname and $student["nachname"] === $nachname) { return $matrikelnummer; break; } } return FALSE; } ?>