66 lines
3.0 KiB
PHP
66 lines
3.0 KiB
PHP
<?php
|
|
require_once __DIR__ . '/includes/db_connect.php';
|
|
|
|
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.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);
|
|
|
|
echo json_encode($karteikarten); |