🔐 Admin Login

$out"; } // --- 2. SQL AKTIONEN --- $msg = ""; $error = ""; // SPIELE SPEICHERN if (isset($_POST['save_game'])) { $id = (int)($_POST['id'] ?? 0); $r_id = (int)$_POST['game_reihe_id']; $t_id = ($_POST['game_typ_id'] == '0') ? null : (int)$_POST['game_typ_id']; $l_id = ($_POST['game_level_id'] == '0') ? null : (int)$_POST['game_level_id']; $ean = (!isset($_POST['ean']) || $_POST['ean'] === '') ? null : $_POST['ean']; $url = !empty($_POST['url']) ? $_POST['url'] : 'https://via.placeholder.com/300x180'; try { if ($id > 0) { $stmt = $pdo->prepare("UPDATE spiele SET game_reihe_id=?, titel=?, game_typ_id=?, game_level_id=?, ean=?, bild_url=? WHERE id=?"); $stmt->execute([$r_id, $_POST['titel'], $t_id, $l_id, $ean, $url, $id]); $msg = "Spiel aktualisiert!"; } else { $stmt = $pdo->prepare("INSERT INTO spiele (game_reihe_id, titel, game_typ_id, game_level_id, ean, bild_url) VALUES (?,?,?,?,?,?)"); $stmt->execute([$r_id, $_POST['titel'], $t_id, $l_id, $ean, $url]); $msg = "Neues Spiel angelegt!"; } } catch (PDOException $e) { $error = "Fehler: " . $e->getMessage(); } } // STAMMDATEN HINZUFÜGEN (Duplikat-Check) if (isset($_POST['add_reihe'])) { $c = $pdo->prepare("SELECT id FROM game_reihe WHERE name=?"); $c->execute([$_POST['name']]); if ($c->fetch()) { $error = "Reihe existiert bereits!"; } else { $pdo->prepare("INSERT INTO game_reihe (name) VALUES (?)")->execute([$_POST['name']]); $msg="Reihe hinzugefügt!"; } } if (isset($_POST['add_typ'])) { $c = $pdo->prepare("SELECT id FROM game_typ WHERE game_reihe_id=? AND bezeichnung=?"); $c->execute([$_POST['r_id'], $_POST['bez']]); if ($c->fetch()) { $error = "Typ existiert bereits für diese Reihe!"; } else { $pdo->prepare("INSERT INTO game_typ (game_reihe_id, bezeichnung) VALUES (?,?)")->execute([$_POST['r_id'], $_POST['bez']]); $msg="Typ hinzugefügt!"; } } if (isset($_POST['add_level'])) { $c = $pdo->prepare("SELECT id FROM game_level WHERE game_reihe_id=? AND bezeichnung=?"); $c->execute([$_POST['r_id'], $_POST['bez']]); if ($c->fetch()) { $error = "Level existiert bereits für diese Reihe!"; } else { $pdo->prepare("INSERT INTO game_level (game_reihe_id, bezeichnung) VALUES (?,?)")->execute([$_POST['r_id'], $_POST['bez']]); $msg="Level hinzugefügt!"; } } if (isset($_POST['add_spieler'])) { $c = $pdo->prepare("SELECT id FROM spieler WHERE name=?"); $c->execute([$_POST['name']]); if ($c->fetch()) { $error = "Spieler existiert bereits!"; } else { $pdo->prepare("INSERT INTO spieler (name) VALUES (?)")->execute([$_POST['name']]); $msg="Spieler hinzugefügt!"; } } // LÖSCHEN if (isset($_GET['del_t']) && isset($_GET['del_id'])) { if (in_array($_GET['del_t'], ['spiele', 'spieler', 'game_reihe', 'game_typ', 'game_level'])) { $pdo->prepare("DELETE FROM `".$_GET['del_t']."` WHERE id=?")->execute([(int)$_GET['del_id']]); header("Location: admin.php"); exit; } } // DATEN LADEN $reihen = $pdo->query("SELECT * FROM game_reihe ORDER BY name")->fetchAll(); $typen = $pdo->query("SELECT t.*, r.name as r_name FROM game_typ t JOIN game_reihe r ON t.game_reihe_id = r.id ORDER BY r.name, t.bezeichnung")->fetchAll(); $levels = $pdo->query("SELECT l.*, r.name as r_name FROM game_level l JOIN game_reihe r ON l.game_reihe_id = r.id ORDER BY r.name, l.bezeichnung")->fetchAll(); $spieler = $pdo->query("SELECT * FROM spieler ORDER BY name")->fetchAll(); $spiele = $pdo->query("SELECT s.*, r.name as r_name FROM spiele s LEFT JOIN game_reihe r ON s.game_reihe_id = r.id ORDER BY s.id DESC")->fetchAll(); ?> Admin Dashboard

🛠 Admin Panel

Katalog Logout
BildReiheTitelTyp / LevelEANBild-URLAktion
".renderStars($lx['bezeichnung']).""; ?> 🗑

Spieler Profile

Löschen

1. Reihen

2. Typen

3. Level / Sterne