aboutsummaryrefslogtreecommitdiff
path: root/admin-update.php
diff options
context:
space:
mode:
Diffstat (limited to 'admin-update.php')
-rw-r--r--admin-update.php54
1 files changed, 33 insertions, 21 deletions
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);
+ }
}
}