Improve error handling in competitors data fetching; ensure JSON responses and display error messages on failure

This commit is contained in:
vista-man
2025-03-27 09:18:38 +01:00
parent 5dfbc1a091
commit 8dc1175dc2
4 changed files with 45 additions and 340 deletions

View File

@@ -17,30 +17,38 @@ $conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
logMessage("Connection failed: " . $conn->connect_error);
die("Connection failed: " . $conn->connect_error);
header("Content-Type: application/json");
http_response_code(500);
echo json_encode(["error" => "Database connection failed"]);
exit;
}
header("Cache-Control: max-age=86400"); // Cache for 24 hours
header("Content-Type: application/json"); // Ensure JSON response
// 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);
try {
// 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);
if ($result) {
$competitors = [];
while ($row = $result->fetch_assoc()) {
$competitors[] = $row;
if ($result) {
$competitors = [];
while ($row = $result->fetch_assoc()) {
$competitors[] = $row;
}
logMessage("Query result: " . json_encode($competitors));
echo json_encode($competitors);
} else {
throw new Exception("Error executing query: " . $conn->error);
}
logMessage("Query result: " . json_encode($competitors));
echo json_encode($competitors);
} else {
logMessage("Error executing query: " . $conn->error);
echo json_encode(["error" => "Error fetching competitors data"]);
} catch (Exception $e) {
logMessage("Exception: " . $e->getMessage());
http_response_code(500);
echo json_encode(["error" => "An error occurred while fetching competitors data"]);
}
$conn->close();