getArticleNb(); if (isset($_GET["id"]) && isset($_GET["team"])) { $art_id = htmlspecialchars($_GET["id"]); $team_id = htmlspecialchars($_GET["team"]); // Recherche de l'énigme indiquée dans la base : $stmt = $database->pdo_article->prepare("SELECT * FROM puzzles WHERE id == :id"); $stmt->bindValue(":id", $art_id); $stmt->execute(); $article = $stmt->fetch(); // Vérification de l'existence du groupe et de l'énigme : if (empty($article) || !$database->checkTeamExists($team_id)) { header("Location: index.php"); die(); } else { // On cherche l'index de l'article dans la liste pzorder assignée à l'équipe : $stmt = $database->pdo_teams->prepare("SELECT pzorder FROM teams WHERE id == :id"); $stmt->bindValue(":id", $team_id); $stmt->execute(); $result = $stmt->fetch(); $order = $result["pzorder"]; // Si un ordre d'énigmes n'a pas été défini au préalable pour cette équipe, on en choisit un au hasard : if (is_null($order)) { $order = rand(0, sizeof($pzorder)); $stmt = $database->pdo_teams->prepare("UPDATE teams SET pzorder = :order WHERE id == :id"); $stmt->bindValue(":id", $team_id); $stmt->bindValue(":order", $order); $stmt->execute(); } $pzo_arr = $pzorder[$order]; $art_index = array_search($art_id, $pzo_arr); $prev_art = $pzo_arr[$art_index - 1]; if ($art_index == 0) { $prev_art = $pzo_arr[$max_art - 1]; } $next_art = $pzo_arr[($art_index + 1) % $max_art]; // On indique si l'énigme est résolue : $stmt = $database->pdo_teams->prepare("SELECT * FROM solved WHERE (team_id == :team_id AND puzzle_id == :puzzle_id)"); $stmt->bindValue(":team_id", $team_id); $stmt->bindValue(":puzzle_id", $art_id); $stmt->execute(); $solved = !empty($stmt->fetch()); } } else { header("Location: index.php"); die(); } ?> <?= $tr["tab_title"]["article"] ?>