diff --git a/v2/actions.js b/v2/actions.js new file mode 100644 index 0000000..da18468 --- /dev/null +++ b/v2/actions.js @@ -0,0 +1,104 @@ +document.querySelector("#register-pokemon").addEventListener("click", registerPokemon); +document.querySelector("#edit-pokemon").addEventListener("click", editPokemon); +document.querySelector("#delete-pokemon").addEventListener("click", deletePokemon); + +function registerPokemon() { + const name = prompt("Enter Pokémon name:"); + const id = prompt("Enter Pokémon ID:"); + const height = prompt("Enter Pokémon height:"); + const weight = prompt("Enter Pokémon weight:"); + const base_experience = prompt("Enter Pokémon base experience:"); + const species_url = prompt("Enter Pokémon species URL:"); + const image_url = prompt("Enter Pokémon image URL:"); + + if (name && id && height && weight && base_experience && species_url && image_url) { + fetch(`./register-pokemon.php`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ name, id, height, weight, base_experience, species_url, image_url }), + }) + .then((response) => response.json()) + .then((data) => { + if (data.success) { + alert("Pokémon registered successfully!"); + location.reload(); + } else { + alert("Failed to register Pokémon."); + } + }) + .catch((error) => { + console.error("Error registering Pokémon:", error); + }); + } else { + alert("All fields are required."); + } +} + +function editPokemon() { + const id = prompt("Enter Pokémon ID to edit:"); + if (!id) { + alert("Pokémon ID is required."); + return; + } + + const name = prompt("Enter new Pokémon name:"); + const height = prompt("Enter new Pokémon height:"); + const weight = prompt("Enter new Pokémon weight:"); + const base_experience = prompt("Enter new Pokémon base experience:"); + const species_url = prompt("Enter new Pokémon species URL:"); + const image_url = prompt("Enter new Pokémon image URL:"); + + if (name && height && weight && base_experience && species_url && image_url) { + fetch(`./edit-pokemon.php`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ id, name, height, weight, base_experience, species_url, image_url }), + }) + .then((response) => response.json()) + .then((data) => { + if (data.success) { + alert("Pokémon edited successfully!"); + location.reload(); + } else { + alert("Failed to edit Pokémon."); + } + }) + .catch((error) => { + console.error("Error editing Pokémon:", error); + }); + } else { + alert("All fields are required."); + } +} + +function deletePokemon() { + const id = prompt("Enter Pokémon ID to delete:"); + if (!id) { + alert("Pokémon ID is required."); + return; + } + + fetch(`./delete-pokemon.php`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ id }), + }) + .then((response) => response.json()) + .then((data) => { + if (data.success) { + alert("Pokémon marked as deleted successfully!"); + location.reload(); + } else { + alert("Failed to mark Pokémon as deleted."); + } + }) + .catch((error) => { + console.error("Error marking Pokémon as deleted:", error); + }); +} diff --git a/v2/delete-pokemon.php b/v2/delete-pokemon.php new file mode 100644 index 0000000..ea896c8 --- /dev/null +++ b/v2/delete-pokemon.php @@ -0,0 +1,45 @@ +connect_error) { + logMessage("Connection failed: " . $conn->connect_error); + die("Connection failed: " . $conn->connect_error); +} + +header("Content-Type: application/json"); + +$data = json_decode(file_get_contents("php://input"), true); + +if (isset($data['id'])) { + $id = intval($data['id']); + $sql = "UPDATE pokemon SET deleted = 1 WHERE id = $id"; + logMessage("Executing query: $sql"); + + if ($conn->query($sql) === TRUE) { + logMessage("Pokémon marked as deleted successfully."); + echo json_encode(["success" => true]); + } else { + logMessage("Error: " . $conn->error); + echo json_encode(["success" => false, "error" => $conn->error]); + } +} else { + logMessage("Invalid input data."); + echo json_encode(["success" => false, "error" => "Invalid input data."]); +} + +$conn->close(); +?> diff --git a/v2/error_log.txt b/v2/error_log.txt index e69de29..388022d 100644 --- a/v2/error_log.txt +++ b/v2/error_log.txt @@ -0,0 +1,4 @@ +Executing query: SELECT user_id, COUNT(pokemon_id) AS pokemon_count + FROM user_pokemon + GROUP BY user_id + ORDER BY pokemon_count DESC diff --git a/v2/get-competitors.php b/v2/get-competitors.php new file mode 100644 index 0000000..7920136 --- /dev/null +++ b/v2/get-competitors.php @@ -0,0 +1,41 @@ +connect_error) { + logMessage("Connection failed: " . $conn->connect_error); + die("Connection failed: " . $conn->connect_error); +} + +header("Cache-Control: max-age=86400"); // Cache for 24 hours + +// Fetch competitors data +$sql = "SELECT user_id, COUNT(pokemon_id) AS pokemon_count + FROM user_pokemon + GROUP BY user_id + ORDER BY pokemon_count DESC"; +logMessage("Executing query: $sql"); +$result = $conn->query($sql); + +$competitors = []; +while ($row = $result->fetch_assoc()) { + $competitors[] = $row; +} +logMessage("Query result: " . json_encode($competitors)); +echo json_encode($competitors); + +$conn->close(); +?> diff --git a/v2/get-pokemon.php b/v2/get-pokemon.php index a034599..4051026 100644 --- a/v2/get-pokemon.php +++ b/v2/get-pokemon.php @@ -32,7 +32,7 @@ if (isset($_GET['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 + WHERE p.id = $id AND p.deleted = 0 GROUP BY p.id"; logMessage("Executing query: $sql"); $result = $conn->query($sql); @@ -48,7 +48,7 @@ if (isset($_GET['id'])) { echo json_encode(["error" => "No Pokémon found"]); } } else { - $sql = "SELECT * FROM pokemon"; + $sql = "SELECT * FROM pokemon WHERE deleted = 0"; logMessage("Executing query: $sql"); $result = $conn->query($sql); diff --git a/v2/index.html b/v2/index.html index 797f396..dd9822e 100644 --- a/v2/index.html +++ b/v2/index.html @@ -90,6 +90,11 @@ +