38 lines
1.3 KiB
PHP
38 lines
1.3 KiB
PHP
<?php
|
|
global $db;
|
|
try {
|
|
$query = "SELECT
|
|
k.id,
|
|
k.name,
|
|
k.beschreibung,
|
|
k.gebuehr,
|
|
k.max_teilnehmer,
|
|
COUNT(a.id) as belegte_plaetze,
|
|
(k.max_teilnehmer - COUNT(a.id)) as freie_plaetze,
|
|
CASE WHEN COUNT(a.id) >= k.max_teilnehmer THEN 0 ELSE 1 END as verfuegbar
|
|
FROM kurse k
|
|
LEFT JOIN anmeldungen a ON k.id = a.kurs_id
|
|
GROUP BY k.id
|
|
ORDER BY k.name";
|
|
$stmt = $db->prepare($query);
|
|
$stmt->execute();
|
|
|
|
$kurse = [];
|
|
while ($row = $stmt->fetch()) {
|
|
$kurse[] = [
|
|
'id' => (int)$row['id'],
|
|
'name' => $row['name'],
|
|
'beschreibung' => $row['beschreibung'],
|
|
'gebuehr' => (float)$row['gebuehr'],
|
|
'max_teilnehmer' => (int)$row['max_teilnehmer'],
|
|
'belegte_plaetze' => (int)$row['belegte_plaetze'],
|
|
'freie_plaetze' => (int)$row['freie_plaetze'],
|
|
'verfuegbar' => (bool)$row['verfuegbar']
|
|
];
|
|
}
|
|
echo json_encode($kurse);
|
|
} catch (Exception $e) {
|
|
error_log("Error in kurse/get.php: " . $e->getMessage());
|
|
http_response_code(500);
|
|
echo json_encode(['message' => 'Fehler beim Laden der Kurse']);
|
|
} |