prepare("SELECT u.*, g.name as guild_name, g.owner_id as guild_owner_id FROM users u LEFT JOIN guilds g ON u.guild_id = g.id WHERE u.id = ?"); $stmt->execute([$user_id]); $user = $stmt->fetch(); $guild_id = $user['guild_id']; $is_owner = ($guild_id && $user['id'] == $user['guild_owner_id']); // Gérer la création de guilde $error = ''; $success = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['create_guild']) && !$guild_id) { $name = trim($_POST['guild_name']); $tag = trim($_POST['guild_tag']); if (empty($name) || empty($tag)) { $error = "Le nom et le tag sont obligatoires."; } else { try { $db->beginTransaction(); $stmt = $db->prepare("INSERT INTO guilds (name, tag, owner_id) VALUES (?, ?, ?)"); $stmt->execute([$name, $tag, $user_id]); $new_guild_id = $db->lastInsertId(); $stmt = $db->prepare("UPDATE users SET guild_id = ? WHERE id = ?"); $stmt->execute([$new_guild_id, $user_id]); $stmt = $db->prepare("INSERT INTO guild_members (guild_id, user_id, role) VALUES (?, ?, 'owner')"); $stmt->execute([$new_guild_id, $user_id]); $db->commit(); header('Location: guilde.php'); exit; } catch (Exception $e) { $db->rollBack(); $error = "Erreur lors de la création : " . $e->getMessage(); } } } // Récupérer les membres si en guilde $members = []; if ($guild_id) { $stmt = $db->prepare("SELECT u.id, u.username, u.display_name, m.role, m.joined_at, l.name as level_name FROM guild_members m JOIN users u ON m.user_id = u.id LEFT JOIN levels l ON u.level_id = l.id WHERE m.guild_id = ? ORDER BY CASE WHEN m.role = 'owner' THEN 1 WHEN m.role = 'officer' THEN 2 ELSE 3 END ASC, joined_at ASC"); $stmt->execute([$guild_id]); $members = $stmt->fetchAll(); } // Ressources pour le header (copié de index.php) $resources = []; $stmt = $db->prepare(" SELECT gr.*, COALESCE(ur.amount, 0) as amount FROM game_resources gr LEFT JOIN user_resources ur ON gr.id = ur.resource_id AND ur.user_id = ? WHERE gr.show_in_header = 1 ORDER BY CASE WHEN gr.name LIKE 'Crédit%' THEN 1 WHEN gr.name LIKE 'Matériau%' THEN 2 WHEN gr.name LIKE 'Energie%' THEN 3 WHEN gr.name LIKE 'Donnée%' THEN 4 ELSE 5 END ASC, gr.name ASC "); $stmt->execute([$user_id]); $header_resources = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach($header_resources as $hr) { $resources[$hr["name"]] = [ "val" => (string)$hr["amount"], "prod" => "", "icon" => $hr["icon"] ?: "fa-gem", "image" => $hr["image_url"] ]; } ?> Nexus - Guilde
Bienvenue, @ Retour au Nexus Déconnexion
$res): ?>
?v="> " style="color: #88c0d0;">
[]
Niveau Membre Rang Date d'arrivée
Fonder une nouvelle guilde