Initial Commit
This commit is contained in:
38
api/kurse/get.php
Normal file
38
api/kurse/get.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?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']);
|
||||
}
|
||||
Reference in New Issue
Block a user