diff --git a/data.php b/data.php index 17df9db..fd25739 100644 --- a/data.php +++ b/data.php @@ -1,73 +1,65 @@ query("SELECT kk.id, - vorderseite, - rueckseite, - farbe, - name - FROM karteikarte kk - JOIN kategorie k ON k.id = kk.kategorie_id;");*/ + header('Content-Type: application/json'); - - $stmt = $pdo->query("WITH zeile AS (SELECT d.id, - d.wort, - k.name, - i.wort AS italienisch, - COALESCE(f.farbe, 'black') AS farbe, - p.pronomen, - i.wortstamm, - i.suffix, - ROW_NUMBER() OVER (PARTITION BY d.wort ORDER BY i.personalpronomen_id NULLS FIRST, i.id) AS rn - FROM deutsch d - JOIN italienisch i ON i.deutsch_id = d.id - LEFT OUTER JOIN personalpronomen p ON p.id = i.personalpronomen_id - LEFT OUTER JOIN farbe f ON f.id = i.farbe_id - JOIN kategorie k ON k.id = d.kategorie_id - ) - SELECT id, - wort AS deutsch, - name AS wortart, - MAX(CASE WHEN rn = 1 THEN italienisch END) AS italienisch_1, - MAX(CASE WHEN rn = 1 THEN farbe END) AS farbe_1, - MAX(CASE WHEN rn = 1 THEN pronomen END) AS pronomen_1, - MAX(CASE WHEN rn = 1 THEN wortstamm END) AS wortstamm_1, - MAX(CASE WHEN rn = 1 THEN suffix END) AS suffix_1, - MAX(CASE WHEN rn = 2 THEN italienisch END) AS italienisch_2, - MAX(CASE WHEN rn = 2 THEN farbe END) AS farbe_2, - MAX(CASE WHEN rn = 2 THEN pronomen END) AS pronomen_2, - MAX(CASE WHEN rn = 2 THEN wortstamm END) AS wortstamm_2, - MAX(CASE WHEN rn = 2 THEN suffix END) AS suffix_2, - MAX(CASE WHEN rn = 3 THEN italienisch END) AS italienisch_3, - MAX(CASE WHEN rn = 3 THEN farbe END) AS farbe_3, - MAX(CASE WHEN rn = 3 THEN pronomen END) AS pronomen_3, - MAX(CASE WHEN rn = 3 THEN wortstamm END) AS wortstamm_3, - MAX(CASE WHEN rn = 3 THEN suffix END) AS suffix_3, - MAX(CASE WHEN rn = 4 THEN italienisch END) AS italienisch_4, - MAX(CASE WHEN rn = 4 THEN farbe END) AS farbe_4, - MAX(CASE WHEN rn = 4 THEN pronomen END) AS pronomen_4, - MAX(CASE WHEN rn = 4 THEN wortstamm END) AS wortstamm_4, - MAX(CASE WHEN rn = 4 THEN suffix END) AS suffix_4, - MAX(CASE WHEN rn = 5 THEN italienisch END) AS italienisch_5, - MAX(CASE WHEN rn = 5 THEN farbe END) AS farbe_5, - MAX(CASE WHEN rn = 5 THEN pronomen END) AS pronomen_5, - MAX(CASE WHEN rn = 5 THEN wortstamm END) AS wortstamm_5, - MAX(CASE WHEN rn = 5 THEN suffix END) AS suffix_5, - MAX(CASE WHEN rn = 6 THEN italienisch END) AS italienisch_6, - MAX(CASE WHEN rn = 6 THEN farbe END) AS farbe_6, - MAX(CASE WHEN rn = 6 THEN pronomen END) AS pronomen_6, - MAX(CASE WHEN rn = 6 THEN wortstamm END) AS wortstamm_6, - MAX(CASE WHEN rn = 6 THEN suffix END) AS suffix_6, - MAX(CASE WHEN rn = 7 THEN italienisch END) AS italienisch_7, - MAX(CASE WHEN rn = 7 THEN farbe END) AS farbe_7, - MAX(CASE WHEN rn = 7 THEN pronomen END) AS pronomen_7, - MAX(CASE WHEN rn = 7 THEN wortstamm END) AS wortstamm_7, - MAX(CASE WHEN rn = 7 THEN suffix END) AS suffix_7 - FROM zeile - GROUP BY id, wort, name - ORDER BY id;"); + $stmt = $pdo->query("WITH zeile AS ( + SELECT d.id, + d.wort, + k.name, + i.wort AS italienisch, + COALESCE(f.farbe, 'black') AS farbe, + p.pronomen, + i.endung, + i.suffix, + ROW_NUMBER() OVER (PARTITION BY d.wort ORDER BY i.personalpronomen_id NULLS FIRST, i.id) AS rn + FROM deutsch d + JOIN italienisch i ON i.deutsch_id = d.id + LEFT OUTER JOIN personalpronomen p ON p.id = i.personalpronomen_id + LEFT OUTER JOIN farbe f ON f.id = i.farbe_id + JOIN kategorie k ON k.id = d.kategorie_id + ) + SELECT id, + wort AS deutsch, + name AS wortart, + MAX(CASE WHEN rn = 1 THEN italienisch END) AS italienisch_1, + MAX(CASE WHEN rn = 1 THEN farbe END) AS farbe_1, + MAX(CASE WHEN rn = 1 THEN pronomen END) AS pronomen_1, + MAX(CASE WHEN rn = 1 THEN endung END) AS endung_1, + MAX(CASE WHEN rn = 1 THEN suffix END) AS suffix_1, + MAX(CASE WHEN rn = 2 THEN italienisch END) AS italienisch_2, + MAX(CASE WHEN rn = 2 THEN farbe END) AS farbe_2, + MAX(CASE WHEN rn = 2 THEN pronomen END) AS pronomen_2, + MAX(CASE WHEN rn = 2 THEN endung END) AS endung_2, + MAX(CASE WHEN rn = 2 THEN suffix END) AS suffix_2, + MAX(CASE WHEN rn = 3 THEN italienisch END) AS italienisch_3, + MAX(CASE WHEN rn = 3 THEN farbe END) AS farbe_3, + MAX(CASE WHEN rn = 3 THEN pronomen END) AS pronomen_3, + MAX(CASE WHEN rn = 3 THEN endung END) AS endung_3, + MAX(CASE WHEN rn = 3 THEN suffix END) AS suffix_3, + MAX(CASE WHEN rn = 4 THEN italienisch END) AS italienisch_4, + MAX(CASE WHEN rn = 4 THEN farbe END) AS farbe_4, + MAX(CASE WHEN rn = 4 THEN pronomen END) AS pronomen_4, + MAX(CASE WHEN rn = 4 THEN endung END) AS endung_4, + MAX(CASE WHEN rn = 4 THEN suffix END) AS suffix_4, + MAX(CASE WHEN rn = 5 THEN italienisch END) AS italienisch_5, + MAX(CASE WHEN rn = 5 THEN farbe END) AS farbe_5, + MAX(CASE WHEN rn = 5 THEN pronomen END) AS pronomen_5, + MAX(CASE WHEN rn = 5 THEN endung END) AS endung_5, + MAX(CASE WHEN rn = 5 THEN suffix END) AS suffix_5, + MAX(CASE WHEN rn = 6 THEN italienisch END) AS italienisch_6, + MAX(CASE WHEN rn = 6 THEN farbe END) AS farbe_6, + MAX(CASE WHEN rn = 6 THEN pronomen END) AS pronomen_6, + MAX(CASE WHEN rn = 6 THEN endung END) AS endung_6, + MAX(CASE WHEN rn = 6 THEN suffix END) AS suffix_6, + MAX(CASE WHEN rn = 7 THEN italienisch END) AS italienisch_7, + MAX(CASE WHEN rn = 7 THEN farbe END) AS farbe_7, + MAX(CASE WHEN rn = 7 THEN pronomen END) AS pronomen_7, + MAX(CASE WHEN rn = 7 THEN endung END) AS endung_7, + MAX(CASE WHEN rn = 7 THEN suffix END) AS suffix_7 + FROM zeile + GROUP BY id, wort, name + ORDER BY id;"); $karteikarten = $stmt->fetchAll(PDO::FETCH_ASSOC); diff --git a/index.php b/index.php index 10a5cf1..12bbfb6 100644 --- a/index.php +++ b/index.php @@ -38,7 +38,7 @@

-

+

@@ -48,7 +48,7 @@

-

+

@@ -58,7 +58,7 @@

-

+

@@ -68,7 +68,7 @@

-

+

@@ -78,7 +78,7 @@

-

+

@@ -88,7 +88,7 @@

-

+

@@ -98,7 +98,7 @@

-

+

@@ -188,11 +188,11 @@ } else { // Grundform document.getElementById("italienisch_wortstamm_1").style.textDecoration = "underline"; - document.getElementById("italienisch_verben_1").style.textDecoration = "underline"; + document.getElementById("italienisch_endung_1").style.textDecoration = "underline"; - document.getElementById("italienisch_wortstamm_1").textContent = item.wortstamm_1; - document.getElementById("italienisch_verben_1").textContent = item.italienisch_1; - document.getElementById("italienisch_verben_1").style.color = item.farbe_1; + document.getElementById("italienisch_wortstamm_1").textContent = item.italienisch_1; + document.getElementById("italienisch_endung_1").textContent = item.endung_1; + document.getElementById("italienisch_endung_1").style.color = item.farbe_1; if(item.suffix_1 != null) { document.getElementById("italienisch_suffix_1").textContent = " " + item.suffix_1; document.getElementById("italienisch_suffix_1").style.textDecoration = "underline"; @@ -202,44 +202,44 @@ // gebeugte Formen document.getElementById("italienisch_pronomen_2").textContent = item.pronomen_2; - document.getElementById("italienisch_wortstamm_2").textContent = item.wortstamm_2; - document.getElementById("italienisch_verben_2").textContent = item.italienisch_2; - document.getElementById("italienisch_verben_2").style.color = item.farbe_2; + document.getElementById("italienisch_wortstamm_2").textContent = item.italienisch_2; + document.getElementById("italienisch_endung_2").textContent = item.endung_2; + document.getElementById("italienisch_endung_2").style.color = item.farbe_2; if(item.suffix_2 != null) document.getElementById("italienisch_suffix_2").textContent = " " + item.suffix_2; else document.getElementById("italienisch_suffix_2").textContent = null; document.getElementById("italienisch_pronomen_3").textContent = item.pronomen_3; - document.getElementById("italienisch_wortstamm_3").textContent = item.wortstamm_3; - document.getElementById("italienisch_verben_3").textContent = item.italienisch_3; - document.getElementById("italienisch_verben_3").style.color = item.farbe_3; + document.getElementById("italienisch_wortstamm_3").textContent = item.italienisch_3; + document.getElementById("italienisch_endung_3").textContent = item.endung_3; + document.getElementById("italienisch_endung_3").style.color = item.farbe_3; if(item.suffix_3 != null) document.getElementById("italienisch_suffix_3").textContent = " " + item.suffix_3; else document.getElementById("italienisch_suffix_3").textContent = null; document.getElementById("italienisch_pronomen_4").textContent = item.pronomen_4; - document.getElementById("italienisch_wortstamm_4").textContent = item.wortstamm_4; - document.getElementById("italienisch_verben_4").textContent = item.italienisch_4; - document.getElementById("italienisch_verben_4").style.color = item.farbe_4; + document.getElementById("italienisch_wortstamm_4").textContent = item.italienisch_4; + document.getElementById("italienisch_endung_4").textContent = item.endung_4; + document.getElementById("italienisch_endung_4").style.color = item.farbe_4; if(item.suffix_4 != null) document.getElementById("italienisch_suffix_4").textContent = " " + item.suffix_4; else document.getElementById("italienisch_suffix_4").textContent = null; document.getElementById("italienisch_pronomen_5").textContent = item.pronomen_5; - document.getElementById("italienisch_wortstamm_5").textContent = item.wortstamm_5; - document.getElementById("italienisch_verben_5").textContent = item.italienisch_5; - document.getElementById("italienisch_verben_5").style.color = item.farbe_5; + document.getElementById("italienisch_wortstamm_5").textContent = item.italienisch_5; + document.getElementById("italienisch_endung_5").textContent = item.endung_5; + document.getElementById("italienisch_endung_5").style.color = item.farbe_5; if(item.suffix_5 != null) document.getElementById("italienisch_suffix_5").textContent = " " + item.suffix_5; else document.getElementById("italienisch_suffix_5").textContent = null; document.getElementById("italienisch_pronomen_6").textContent = item.pronomen_6; - document.getElementById("italienisch_wortstamm_6").textContent = item.wortstamm_6; - document.getElementById("italienisch_verben_6").textContent = item.italienisch_6; - document.getElementById("italienisch_verben_6").style.color = item.farbe_6; + document.getElementById("italienisch_wortstamm_6").textContent = item.italienisch_6; + document.getElementById("italienisch_endung_6").textContent = item.endung_6; + document.getElementById("italienisch_endung_6").style.color = item.farbe_6; if(item.suffix_6 != null) document.getElementById("italienisch_suffix_6").textContent = " " + item.suffix_6; else document.getElementById("italienisch_suffix_6").textContent = null; document.getElementById("italienisch_pronomen_7").textContent = item.pronomen_7; - document.getElementById("italienisch_wortstamm_7").textContent = item.wortstamm_7; - document.getElementById("italienisch_verben_7").textContent = item.italienisch_7; - document.getElementById("italienisch_verben_7").style.color = item.farbe_7; + document.getElementById("italienisch_wortstamm_7").textContent = item.italienisch_7; + document.getElementById("italienisch_endung_7").textContent = item.endung_7; + document.getElementById("italienisch_endung_7").style.color = item.farbe_7; if(item.suffix_7 != null) document.getElementById("italienisch_suffix_7").textContent = " " + item.suffix_7; else document.getElementById("italienisch_suffix_7").textContent = null;