query("SELECT * FROM game_reihe ORDER BY name ASC")->fetchAll(); // --- 2. LOGIK: NEUEN SPIELER HINZUFÜGEN --- if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_player'])) { $sql = "INSERT IGNORE INTO spieler (name) VALUES (?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$_POST['neuer_spieler_name']]); header("Location: index.php?success=player"); exit; } // --- 3. LOGIK: SCORE HINZUFÜGEN (INKL. BUNDLE-LOGIK) --- if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_score'])) { $unbekannt = isset($_POST['ergebnis_unbekannt']); $zeit = $unbekannt ? 0 : (int)$_POST['zeit']; $hilfe = $unbekannt ? 0 : (int)$_POST['hilfe']; $sterne = $unbekannt ? 0 : (int)$_POST['sterne']; $spieler_id = $_POST['spieler_id']; $spiel_id = $_POST['spiel_id']; try { $pdo->beginTransaction(); // 1. Den Haupt-Score speichern $sql = "INSERT INTO scores (spieler_id, spiel_id, zeit, hilfe, sterne) VALUES (?, ?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$spieler_id, $spiel_id, $zeit, $hilfe, $sterne]); // 2. AUTOMATIK: Prüfen, ob dieses Spiel Unter-Abenteuer hat (Bundles) $stmtChildren = $pdo->prepare("SELECT id FROM spiele WHERE parent_id = ?"); $stmtChildren->execute([$spiel_id]); $children = $stmtChildren->fetchAll(); if ($children) { $sqlChildScore = "INSERT INTO scores (spieler_id, spiel_id, zeit, hilfe, sterne) VALUES (?, ?, ?, ?, ?)"; $stmtChildScore = $pdo->prepare($sqlChildScore); foreach ($children as $child) { $stmtChildScore->execute([$spieler_id, $child['id'], $zeit, $hilfe, $sterne]); } } $pdo->commit(); header("Location: index.php?success=score"); exit; } catch (Exception $e) { $pdo->rollBack(); die("Fehler beim Speichern: " . $e->getMessage()); } } // --- 4. DATEN ABFRAGEN (NEUE STRUKTUR MIT JOINS) --- $sqlGames = "SELECT s.*, r.name as reihe_name, t.bezeichnung as typ_name, l.bezeichnung as level_name FROM spiele s LEFT JOIN game_reihe r ON s.game_reihe_id = r.id LEFT JOIN game_typ t ON s.game_typ_id = t.id LEFT JOIN game_level l ON s.game_level_id = l.id ORDER BY r.name ASC, s.titel ASC"; $exitGames = $pdo->query($sqlGames)->fetchAll(PDO::FETCH_ASSOC); $playersList = $pdo->query("SELECT * FROM spieler ORDER BY name ASC")->fetchAll(); $sqlScores = "SELECT s.*, p.name as spieler_name FROM scores s JOIN spieler p ON s.spieler_id = p.id ORDER BY s.id DESC"; $allScores = $pdo->query($sqlScores)->fetchAll(); // Hilfsfunktion Sterne (Zahlen zu ★) function getStarRating($val) { if (!is_numeric($val)) return htmlspecialchars($val); $n = (int)$val; $out = ""; for($i=1; $i<=5; $i++) { $out .= ($i <= $n) ? "★" : "☆"; } return $out; } ?> EXIT - Dashboard

🏆 EXIT Highscores

"; ?>
0 ? $entry['zeit']." Min" : '?' ?> 0 ? $entry['sterne']."★" : "✔" ?>
Noch ungelöst...

📜 Archiv

Alle Spielergebnisse einsehen.

📂 Zur Übersicht

🎯 Score eintragen

👤 Team/Spieler