real_escape_string($filter); $whereClause = "WHERE scores.difficulty = '$safeFilter'"; } // 2. Query Database (SUDAH DIPERBAIKI) // Menggunakan 'played_at' sesuai gambar database kamu $sql = "SELECT users.username, scores.score, scores.difficulty, scores.played_at FROM scores JOIN users ON scores.user_id = users.id $whereClause ORDER BY scores.score DESC LIMIT 50"; $result = $conn->query($sql); // Cek error jika masih ada (tapi harusnya sudah aman) if (!$result) { die("Query Error: " . $conn->error); } // 3. Statistik Atas $totalGames = $conn->query("SELECT COUNT(*) as total FROM scores")->fetch_assoc()['total']; $highScore = $conn->query("SELECT MAX(score) as max_score FROM scores")->fetch_assoc()['max_score'] ?? 0; $topPlayer = $conn->query("SELECT users.username FROM scores JOIN users ON scores.user_id = users.id ORDER BY score DESC LIMIT 1")->fetch_assoc()['username'] ?? '-'; // Cek user yang login $currentUser = $_SESSION['user'] ?? ''; if (is_array($currentUser)) { $currentName = $currentUser['username']; } else { $currentName = $currentUser; } ?> Leaderboard Premium
Logout

🏆 Leaderboard

Top skor dari semua pemain

🎮
Total Game
👑
Top Player
Skor Tertinggi
Filter: Semua Easy Medium Hard
Rank
Pemain
Mode
Skor
Tanggal
num_rows > 0): $rank = 1; while($row = $result->fetch_assoc()): // Logika Icon Juara $rankDisplay = $rank; if($rank == 1) $rankDisplay = ''; elseif($rank == 2) $rankDisplay = ''; elseif($rank == 3) $rankDisplay = ''; $rowUsername = $row['username']; $isMe = ($rowUsername === $currentName); $initial = strtoupper(substr($rowUsername, 0, 1)); // Format Tanggal (Dari played_at) $dateDisplay = date('d M H:i', strtotime($row['played_at'])); ?>
Anda
Belum ada data skor.