dfghj
This commit is contained in:
@@ -1,51 +1,63 @@
|
|||||||
<?php
|
<?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';
|
require_once 'db.php';
|
||||||
session_start();
|
|
||||||
header('Content-Type: application/json');
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
$game_id = intval($_POST['game_id']);
|
$game_id = isset($_POST['game_id']) ? intval($_POST['game_id']) : 0;
|
||||||
$winner_id = intval($_POST['winner_id']);
|
$winner_id = isset($_POST['winner_id']) ? intval($_POST['winner_id']) : 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
if ($game_id === 0 || $winner_id === 0) {
|
||||||
// 1. Vérifier que le joueur est bien dans la partie
|
throw new Exception("ID de partie ou de joueur invalide.");
|
||||||
$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.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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 = $db->prepare("SELECT pot FROM games WHERE id = ?");
|
||||||
$stmt->execute([$game_id]);
|
$stmt->execute([$game_id]);
|
||||||
$game = $stmt->fetch();
|
$game = $stmt->fetch();
|
||||||
$pot = $game['pot'];
|
|
||||||
|
|
||||||
// 3. Mettre à jour le solde du gagnant
|
$stmt = $db->prepare("SELECT name FROM players WHERE id = ?");
|
||||||
|
$stmt->execute([$winner_id]);
|
||||||
|
$player = $stmt->fetch();
|
||||||
|
|
||||||
|
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 = $db->prepare("UPDATE players SET money = money + ? WHERE id = ?");
|
||||||
$stmt->execute([$total_pot, $winner_id]);
|
$stmt->execute([$total_pot, $winner_id]);
|
||||||
|
|
||||||
// 4. Remettre à 0 le pot total de la partie
|
// Vider le pot de la partie et reset la mise actuelle
|
||||||
$stmt = $db->prepare("UPDATE games SET pot = 0 WHERE id = ?");
|
$stmt = $db->prepare("UPDATE games SET pot = 0, last_bet = 0 WHERE id = ?");
|
||||||
$stmt->execute([$game_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 = $db->prepare("UPDATE players SET current_bet = 0 WHERE game_id = ?");
|
||||||
$stmt->execute([$game_id]);
|
$stmt->execute([$game_id]);
|
||||||
|
|
||||||
// 6. Remettre à 0 la blind actuelle de la partie
|
$db->commit();
|
||||||
$stmt = $db->prepare("UPDATE games SET last_bet = 0 WHERE id = ?");
|
|
||||||
$stmt->execute([$game_id]);
|
|
||||||
|
|
||||||
// 7. Récupérer le nom du gagnant pour l'afficher
|
echo json_encode([
|
||||||
$stmt = $db->prepare("SELECT name FROM players WHERE id = ?");
|
'success' => true,
|
||||||
$stmt->execute([$winner_id]);
|
'winner_name' => $winner_name,
|
||||||
$winner = $stmt->fetch(PDO::FETCH_ASSOC);
|
'amount_won' => $total_pot
|
||||||
|
]);
|
||||||
echo json_encode(['success' => true, 'winner_name' => $winner['name'] ?? "Inconnu", 'amount_won' => $total_pot]);
|
|
||||||
|
|
||||||
} catch (Exception $e) {
|
} 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