dfghj
This commit is contained in:
@@ -1,51 +1,63 @@
|
||||
<?php
|
||||
// Désactiver l'affichage des erreurs en sortie pour ne pas polluer le JSON
|
||||
error_reporting(0);
|
||||
ini_set('display_errors', 0);
|
||||
|
||||
require_once 'db.php';
|
||||
session_start();
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$game_id = intval($_POST['game_id']);
|
||||
$winner_id = intval($_POST['winner_id']);
|
||||
$game_id = isset($_POST['game_id']) ? intval($_POST['game_id']) : 0;
|
||||
$winner_id = isset($_POST['winner_id']) ? intval($_POST['winner_id']) : 0;
|
||||
|
||||
try {
|
||||
|
||||
// 1. Vérifier que le joueur est bien dans la partie
|
||||
$stmt = $db->prepare("SELECT id FROM players WHERE game_id = ? AND id = ?");
|
||||
$stmt->execute([$game_id, $winner_id]);
|
||||
if (!$stmt->fetch()) {
|
||||
throw new Exception("Le joueur n'est pas dans cette partie.");
|
||||
if ($game_id === 0 || $winner_id === 0) {
|
||||
throw new Exception("ID de partie ou de joueur invalide.");
|
||||
}
|
||||
|
||||
// 2. Récupérer le pot total de la partie
|
||||
// 1. On récupère le pot de la table et le nom du gagnant
|
||||
$stmt = $db->prepare("SELECT pot FROM games WHERE id = ?");
|
||||
$stmt->execute([$game_id]);
|
||||
$game = $stmt->fetch();
|
||||
$pot = $game['pot'];
|
||||
|
||||
$stmt = $db->prepare("SELECT name FROM players WHERE id = ?");
|
||||
$stmt->execute([$winner_id]);
|
||||
$player = $stmt->fetch();
|
||||
|
||||
// 3. Mettre à jour le solde du gagnant
|
||||
if (!$game || !$player) {
|
||||
throw new Exception("Données introuvables en base.");
|
||||
}
|
||||
|
||||
$total_pot = intval($game['pot']);
|
||||
$winner_name = $player['name'];
|
||||
|
||||
// 2. On effectue les mises à jour
|
||||
$db->beginTransaction();
|
||||
|
||||
// Ajouter l'argent au gagnant
|
||||
$stmt = $db->prepare("UPDATE players SET money = money + ? WHERE id = ?");
|
||||
$stmt->execute([$total_pot, $winner_id]);
|
||||
|
||||
// 4. Remettre à 0 le pot total de la partie
|
||||
$stmt = $db->prepare("UPDATE games SET pot = 0 WHERE id = ?");
|
||||
// Vider le pot de la partie et reset la mise actuelle
|
||||
$stmt = $db->prepare("UPDATE games SET pot = 0, last_bet = 0 WHERE id = ?");
|
||||
$stmt->execute([$game_id]);
|
||||
|
||||
// 5. Remettre à 0 les mises de tous les joueurs
|
||||
// Reset les mises individuelles
|
||||
$stmt = $db->prepare("UPDATE players SET current_bet = 0 WHERE game_id = ?");
|
||||
$stmt->execute([$game_id]);
|
||||
|
||||
// 6. Remettre à 0 la blind actuelle de la partie
|
||||
$stmt = $db->prepare("UPDATE games SET last_bet = 0 WHERE id = ?");
|
||||
$stmt->execute([$game_id]);
|
||||
$db->commit();
|
||||
|
||||
// 7. Récupérer le nom du gagnant pour l'afficher
|
||||
$stmt = $db->prepare("SELECT name FROM players WHERE id = ?");
|
||||
$stmt->execute([$winner_id]);
|
||||
$winner = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
echo json_encode(['success' => true, 'winner_name' => $winner['name'] ?? "Inconnu", 'amount_won' => $total_pot]);
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'winner_name' => $winner_name,
|
||||
'amount_won' => $total_pot
|
||||
]);
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
|
||||
if (isset($db) && $db->inTransaction()) $db->rollBack();
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'message' => $e->getMessage()
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
||||
exit;
|
||||
Reference in New Issue
Block a user