diff --git a/forms/hinzufuegenKarte.php b/forms/hinzufuegenKarte.php index e6e93fb..bd7507b 100644 --- a/forms/hinzufuegenKarte.php +++ b/forms/hinzufuegenKarte.php @@ -8,8 +8,8 @@ $return = $_POST['return'] ?? 'allgemein'; $kategorie = $_POST['kategorie'] ?? 'substantive'; - $deutsch = trim($_POST['deutsch'] ?? ''); - $suffix = trim($_POST['suffix'] ?? null); + $deutsch = trim($_POST['deutsch']) ?? ''; + $suffix = trim($_POST['suffix'] ?? ''); $italienisch = []; $farbe = []; @@ -18,10 +18,15 @@ $endungVergleich = ''; + $anzahlWoerter = 0; + if($kategorie != 'verben') { for($i = 0; $i < 7; $i++) { - $italienisch[$i] = trim($_POST['italienisch_' . $i] ?? ''); - $farbe[$i] = $_POST['farbe_' . $i] ?? 'black'; + if($_POST['italienisch_' . $i] ?? '' != '') { + $italienisch[$i] = trim($_POST['italienisch_' . $i] ?? ''); + $farbe[$i] = $_POST['farbe_' . $i] ?? 'black'; + $anzahlWoerter++; + } } } else { for($i = 0; $i < 7; $i++) { @@ -47,7 +52,7 @@ exit; } - insertDB($pdo, $kategorie, $deutsch, $italienisch, $farbe, $wortstamm, $endung, $suffix); + insertDB($pdo, $kategorie, $deutsch, $italienisch, $farbe, $wortstamm, $endung, $suffix, $anzahlWoerter); unset($_SESSION['old']); @@ -58,7 +63,8 @@ array $farbe, array $wortstamm, array $endung, - string $suffix) { + string $suffix, + int $anzahlWoerter) { try { $pdo->beginTransaction(); @@ -78,9 +84,7 @@ $stmt = $pdo->query("SELECT id, farbe FROM farbe;"); - $farbe_array = $stmt->fetchAll(PDO::FETCH_ASSOC); - - foreach($farbe_array as $farbe) if($farbe['farbe'] == 'red') $red_farbe_id = $farbe['id']; + $farbe_array = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt = $pdo->prepare("INSERT INTO deutsch(wort, kategorie_id, wort_hinzugefuegt) VALUES (:wort, :kategorie_id, (:wort_hinzugefuegt)::timestamp);"); @@ -95,7 +99,7 @@ $deutsch_id = $stmt->fetchColumn(); if($kategorie != 'verben') { - for($i = 0; $i < 7; $i++) { + for($i = 0; $i < $anzahlWoerter; $i++) { $farbe_id = -1; foreach($farbe_array as $it_farbe) if($it_farbe['farbe'] == $farbe[$i]) $farbe_id = $it_farbe['id']; @@ -111,6 +115,8 @@ $stmt = $pdo->query("SELECT id FROM personalpronomen;"); $personalpronomen = $stmt->fetchAll(PDO::FETCH_ASSOC); + foreach($farbe_array as $farbe) if($farbe['farbe'] == 'red') $red_farbe_id = $farbe['id']; + for($i = 0; $i < 7; $i++) { $pp = ($i == 0) ? null : $personalpronomen[$i - 1]['id'];