exec(" DELETE FROM measurement_nodes WHERE required_by = '" . $meta . "'; "); $db->exec(" DELETE FROM measurement_program_id_bits WHERE measurement_id = '" . $meta . "'; "); $db->exec(" DELETE FROM measurements WHERE id = '" . $meta . "'; "); $message[0] = true; $message[1] = "Die Messung wurde gelöscht."; $message = json_encode($message); print($message); die(); break; case "add": $meta = json_decode($meta, true); if(empty($meta["programCache"]) || empty($_SESSION["bridges"]) || empty($meta['name'])) { $message[0] = false; $message[1] = "Es gab einen Fehler beim Speichern!"; $message = json_encode($message); print($message); die(); } $db->exec("INSERT INTO places (plug_id, name) VALUES (" . $plug . ", '" . $meta["name"]. "'); "); $newdata["plugID"] = $plug; $newdata["place"] = $placeID; $newdata["programID"] = $meta["programCache"]; $bridges_original = $_SESSION["bridges"]; $newdata["special"] = $meta["special"]; $bridges_hidden = json_decode(urldecode($meta["bridges-hidden"])); $newdata["timestamp"] = time(); // $bridges_result = $bridges_original - $bridges_hidden $bridges_original; $bridges_hidden; // Hilfsfunktion: vergleicht zwei Arrays inhaltlich, unabhängig von String/Int function arrays_are_equal($a, $b) { return ((string)$a[0] === (string)$b[0]) && ((string)$a[1] === (string)$b[1]); } // Ergebnisarray initialisieren $bridges_result = []; // Für jedes Originalelement prüfen, ob es in hidden vorkommt foreach ($bridges_original as $orig) { $found = false; foreach ($bridges_hidden as $hidden) { if (arrays_are_equal($orig, $hidden)) { $found = true; break; } } if (!$found) { $bridges_result[] = $orig; } } $newdata["bridges"] = $bridges_result; $db->exec("INSERT INTO measurements (place_name, comment, timestamp) VALUES ('" . $meta["name"] . "', '" . $meta["special"] . "', " . time() . ");"); $measurement_id = $db->lastInsertRowID(); $i = 0; foreach($meta["programCache"] as $program_id_char) { $db->exec("INSERT INTO measurement_program_id_bits (value, position, measurement_id) VALUES ('" . $program_id_char . "', '" . $i. "', '" . $measurement_id . "'); "); $i++; } foreach($newdata["bridges"] as $bridge) { $db->exec("INSERT INTO measurement_nodes (required_by, node_from, node_to) VALUES (" . $measurement_id . ", '" . $bridge[0]. "', '" . $bridge[1] . "'); "); } $message[0] = true; $message[1] = "Die Messung wurde am Ort '" . $meta['name'] . "' gespeichert!"; $message = json_encode($message); print($message); die(); break; }