From 6fa0e3ddcad13591180ffd13fad48cb576ded46e Mon Sep 17 00:00:00 2001 From: p3t3rp1Lz Date: Sat, 4 Apr 2026 19:31:36 +0200 Subject: [PATCH] =?UTF-8?q?Karten=20f=C3=BCr=20alle=20Wortarten=20designed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data.php | 91 +++++++++++++------- index.php | 248 ++++++++++++++++++++++++++++++++++++++++++++++++++---- style.css | 39 +++++++-- 3 files changed, 325 insertions(+), 53 deletions(-) diff --git a/data.php b/data.php index 3e4e6c6..17df9db 100644 --- a/data.php +++ b/data.php @@ -3,41 +3,72 @@ header('Content-Type: application/json'); - $stmt = $pdo->query("SELECT kk.id, + /*$stmt = $pdo->query("SELECT kk.id, vorderseite, rueckseite, farbe, name FROM karteikarte kk - JOIN kategorie k ON k.id = kk.kategorie_id;"); + JOIN kategorie k ON k.id = kk.kategorie_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.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;"); + $karteikarten = $stmt->fetchAll(PDO::FETCH_ASSOC); -/*WITH zeile AS ( - SELECT d.id, - d.wort, - k.name, - i.wort AS italienisch, - i.farbe_id AS farbe, - ROW_NUMBER() OVER (PARTITION BY d.wort ORDER BY i.id) AS rn - FROM deutsch d - JOIN italienisch i ON i.deutsch_id = d.id - JOIN kategorie k ON k.id = d.kategorie_id -) -SELECT id, - wort, - name, - MAX(CASE WHEN rn = 1 THEN italienisch END) AS wort_1, - MAX(CASE WHEN rn = 1 THEN farbe END) AS farbe_1, - MAX(CASE WHEN rn = 2 THEN italienisch END) AS wort_2, - MAX(CASE WHEN rn = 2 THEN farbe END) AS farbe_2, - MAX(CASE WHEN rn = 3 THEN italienisch END) AS wort_3, - MAX(CASE WHEN rn = 3 THEN farbe END) AS farbe_3, - MAX(CASE WHEN rn = 4 THEN italienisch END) AS wort_4, - MAX(CASE WHEN rn = 4 THEN farbe END) AS farbe_4, - MAX(CASE WHEN rn = 5 THEN italienisch END) AS wort_5, - MAX(CASE WHEN rn = 5 THEN farbe END) AS farbe_5 -FROM zeile -GROUP BY id, wort, name -ORDER BY wort;*/ - echo json_encode($karteikarten); \ No newline at end of file diff --git a/index.php b/index.php index 431bfe9..39271b1 100644 --- a/index.php +++ b/index.php @@ -3,7 +3,7 @@ $system = getenv('POSTGRES_SYSTEM') ?? 'test'; $stmt = $pdo -> query("SELECT COUNT(*) AS gesamtanzahl - FROM karteikarte;"); + FROM deutsch;"); $row = $stmt->fetch(PDO::FETCH_ASSOC); $gesamtanzahl = $row ? $row['gesamtanzahl'] : 0; @@ -24,7 +24,86 @@ Leg“ los + diff --git a/style.css b/style.css index 790680e..4586c11 100644 --- a/style.css +++ b/style.css @@ -1,5 +1,5 @@ html { - font-size: 26px; + font-size: 24px; font-family: Arial, Helvetica, sans-serif; } @@ -54,9 +54,9 @@ div.header{ .button-karteikarte { display: none; - font-size: 96px; + font-size: 40px; font-family: Arial, Helvetica, sans-serif; - width: 75%; + width: 85%; margin-top: 25px; padding: 25px 40px; color: black; @@ -66,6 +66,20 @@ div.header{ 0 4px 8px rgba(0,0,0,0.3); } +.p-karteikarte { + display: none; + margin: 0px; +} + +.p-karteikarte_verben { + margin: 0px; +} + +.p-karteikarte_verben_suffix { + margin: 0px; + margin-left: 15px; +} + #deutsch { height: 250px; } @@ -76,14 +90,20 @@ div.header{ } #italienisch { - height: 750px; + height: 650px; + flex-direction: column; + align-items: center; +} + +#italienisch_verben { + height: 500px; } div.inhalt { margin-top: 150px; height: calc(100vh - 80px); display: flex; - flex-direction:column; + flex-direction: column; align-items: center; } @@ -118,4 +138,13 @@ a.menueLink { a:visited { color:#14748A; +} + +.table-karteikarte { + width: 100%; + text-align: left; +} + +.td-pronomen { + width: 30%; } \ No newline at end of file