diff options
| author | Friedrich Beckmann <friedrich.beckmann@gmx.de> | 2026-01-30 17:59:23 +0100 |
|---|---|---|
| committer | Friedrich Beckmann <friedrich.beckmann@gmx.de> | 2026-01-30 17:59:23 +0100 |
| commit | d0fce093ef2f16fc2897baf7ddf93b6f969890bf (patch) | |
| tree | c39446943c2a36c4bafcaa5e1640d3ea85721a90 /database.php | |
initial commit
The first prototype where you can upload student data from moodle
and change the marks. In student view the results for the logged in
person can be viewed.
Diffstat (limited to 'database.php')
| -rw-r--r-- | database.php | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/database.php b/database.php new file mode 100644 index 0000000..9c14920 --- /dev/null +++ b/database.php @@ -0,0 +1,138 @@ +<?php + +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 "<p>Cannot open database.json</p>"; + 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 "<p>ERROR: Student ",$matrikelnummer," is already in database.</p>"; + } + break; + case "student_add_fach" : + $matrikelnummer = $cmd["matrikelnummer"]; + $fach = $cmd["fach"]; + if (empty($students[$matrikelnummer])) { + echo "<p>ERROR: Cannot add $fach to $matrikelnummer as student is not in database.</p>"; + } elseif (array_key_exists($fach,$students[$matrikelnummer]["noten"])) { + echo "<p>ERROR: $fach already exists for $matrikelnummer in database.</p>"; + } 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 "<p>ERROR: Group $gname for $fach in $semester is already in database.</p>"; + } + 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 "<p>ERROR: database cmd ", $cmd["cmd"],"is unknown.</p>"; + } + } + 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; +} +?>
\ No newline at end of file |
