diff options
| -rw-r--r-- | admin-show.php | 12 | ||||
| -rw-r--r-- | admin-update.php | 54 | ||||
| -rw-r--r-- | setup.php | 7 |
3 files changed, 50 insertions, 23 deletions
diff --git a/admin-show.php b/admin-show.php index 21be02b..cb732c8 100644 --- a/admin-show.php +++ b/admin-show.php @@ -68,6 +68,7 @@ echo "<th>Nachname <input type=\"submit\" name=\"snup\" value=\"↑\"> <inpu echo "<th>Vorname</th>"; echo "<th>Labor</th>"; echo "<th>Klausur</th>"; +echo "<th>Prüfungsamt</th>"; echo "</tr>"; echo "<tr>"; echo "<td>"; @@ -132,14 +133,21 @@ foreach ($groups as $semester => $pruefungen) { } else { $labornote = ""; } + if (!empty($student["noten"][$pruefung]["amt"])) { + //$amt = $student["noten"][$pruefung]["amt"]; + $amt = "checked"; + } else { + $amt = ""; + } $displayrow = array ( "semester" => $semester, "fach" => $pruefung, "gruppe" => $groupname, "nachname" => "<a href=\"show-user.php?matrikelnummer=$matrikelnummer\">$nachname</a>", "vorname" => $vorname, - "labornote" => "<input type=\"text\" name=\"note[$matrikelnummer][$pruefung][labor][$semester]\" value=\"$labornote\" size=2 maxlength=2>", - "klausurnote" => "<input type=\"text\" name=\"note[$matrikelnummer][$pruefung][klausur][$semester]\" value=\"$klausurnote\" size=3 maxlength=3>" + "labornote" => "<input type=\"text\" name=\"note[$matrikelnummer][$pruefung][$semester][labor]\" value=\"$labornote\" size=2 maxlength=2>", + "klausurnote" => "<input type=\"text\" name=\"note[$matrikelnummer][$pruefung][$semester][klausur]\" value=\"$klausurnote\" size=3 maxlength=3>", + "amt" => "<input type=\"checkbox\" name=\"note[$matrikelnummer][$pruefung][$semester][amt]\" value=\"1\" $amt=>" ); $displaytable[] = $displayrow; } diff --git a/admin-update.php b/admin-update.php index f0d3896..c952618 100644 --- a/admin-update.php +++ b/admin-update.php @@ -9,30 +9,42 @@ if (empty($_POST["note"])) { $notenneu = $_POST["note"]; foreach ($notenneu as $matrikelnummer => $pruefungen) { - foreach ($pruefungen as $fach => $teilpruefungen) { - foreach ($teilpruefungen as $teilpruefung => $semesterliste) { - foreach ($semesterliste as $semestername => $note) { - if (!array_key_exists($fach,$students[$matrikelnummer]["noten"])) { - var_dump($students[$matrikelnummer]); - echo "<p>ERROR: Fach $fach bei $matrikelnummer existiert nicht</p>"; - } else { - if (!empty($note) and ( - empty($students[$matrikelnummer]["noten"][$fach][$teilpruefung]) or - $students[$matrikelnummer]["noten"][$fach][$teilpruefung] !== $note)) { - if (($teilpruefung === "klausur" and in_array($note,$notenklausur) or - $teilpruefung === "labor" and in_array($note,$notenlabor))) { - $students[$matrikelnummer]["noten"][$fach][$teilpruefung] = $note; - db_student_update_note($matrikelnummer,$fach,$teilpruefung,$note); - break; - } else { - var_dump($students[$matrikelnummer]); - echo "<p>ERROR: Note $note ungueltig fuer $matrikelnummer,$fach,$teilpruefung </p>"; - } - } + foreach ($pruefungen as $fach => $semesterliste) { + $notenupdate[$fach] = []; + if (!array_key_exists($fach,$students[$matrikelnummer]["noten"])) { + var_dump($students[$matrikelnummer]); + echo "<p>ERROR: Fach $fach bei $matrikelnummer existiert nicht</p>"; + break; + } + foreach ($semesterliste as $semestername => $teilpruefungen) { + // "amt" is a checkbox input where the name exists only when checked + // So the $teilpruefung loop will only iterate if it is checked. + if (!empty($students[$matrikelnummer]["noten"][$fach]["amt"]) + and empty($teilpruefungen["amt"])) { + $notenupdate[$fach]["amt"]=""; + } + foreach ($teilpruefungen as $teilpruefung => $note) { + if (!empty($note) + and (in_array($note,$notendelete) + or empty($students[$matrikelnummer]["noten"][$fach][$teilpruefung]) + or $students[$matrikelnummer]["noten"][$fach][$teilpruefung] !== $note)) { + if ($teilpruefung === "klausur" and in_array($note,$notenklausur) + or $teilpruefung === "labor" and in_array($note,$notenlabor) + or $teilpruefung === "amt" and in_array($note,$notenamt) + or in_array($note,$notendelete)) { + $note = in_array($note,$notendelete) ? "" : $note; + $notenupdate[$fach][$teilpruefung]=$note; + } else { + var_dump($students[$matrikelnummer]); + echo "<p>ERROR: Note $note ungueltig fuer $matrikelnummer,$fach,$teilpruefung </p>"; + } } } } - + foreach ($notenupdate[$fach] as $teilpruefung => $neuenote) { + $students[$matrikelnummer]["noten"][$fach][$teilpruefung] = $neuenote; + db_student_update_note($matrikelnummer,$fach,$teilpruefung,$neuenote); + } } } @@ -35,11 +35,18 @@ $pfp = array ( "name" => "Digitaltechnik", "pnr" => ["3976090"], "studiengang" => ["TI"] + ), + "amt" => array ( + "name" => "Prüfungsamt", + "pnr" => [], + "studiengang" => [] ) ); $notenlabor = ["BE", "NB", "AB", "NM", "NA"]; $notenklausur = ["100","130","170","200","230","270","300","330","370","400","500"]; +$notenamt = ["1"]; //amt is either 1 or not set, i.e "" +$notendelete = ["00", "000"]; //Unset value in database "00" for labor, "000" for klausur $students = array ( "12345" => array ( |
