connect_error) { logMessage("Connection failed: " . $conn->connect_error); die("Connection failed: " . $conn->connect_error); } header("Cache-Control: max-age=86400"); // Cache for 24 hours if (isset($_GET['id'])) { $id = intval($_GET['id']); $sql = "SELECT p.*, s.flavor_text, GROUP_CONCAT(t.name) AS types, GROUP_CONCAT(a.name) AS abilities, st.hp, st.attack, st.defense, st.sp_attack, st.sp_defense, st.speed FROM pokemon p LEFT JOIN species s ON p.id = s.pokemon_id LEFT JOIN pokemon_types pt ON p.id = pt.pokemon_id LEFT JOIN types t ON pt.type_id = t.id LEFT JOIN pokemon_abilities pa ON p.id = pa.pokemon_id LEFT JOIN abilities a ON pa.ability_id = a.id LEFT JOIN stats st ON p.id = st.pokemon_id WHERE p.id = $id AND p.deleted = 0 GROUP BY p.id"; logMessage("Executing query: $sql"); $result = $conn->query($sql); if ($result->num_rows > 0) { $pokemon = $result->fetch_assoc(); $pokemon['types'] = explode(',', $pokemon['types']); $pokemon['abilities'] = explode(',', $pokemon['abilities']); logMessage("Query result: " . json_encode($pokemon)); echo json_encode($pokemon); } else { logMessage("No Pokémon found for ID: $id"); echo json_encode(["error" => "No Pokémon found"]); } } else { $sql = "SELECT * FROM pokemon WHERE deleted = 0"; logMessage("Executing query: $sql"); $result = $conn->query($sql); $pokemons = []; while ($row = $result->fetch_assoc()) { $pokemons[] = $row; } logMessage("Query result: " . json_encode($pokemons)); echo json_encode($pokemons); } $conn->close(); ?>