14-12-2012, 05:58 PM
Je comprend pas pourquoi tu utilises les tables play et combat.
Perso je ferais quelque chose comme ça :
Cela implique une table combats avec les colonnes (id, id_joueur, id_adversaire, joueur_score, joueur_a_joue, adversaire_score, adversaire_a_joue, resultat) et la table joueurs qui contient au minimum les colonnes (id, points).
Maintenant à toi d'adapter.
Perso je ferais quelque chose comme ça :
Code :
if($partie['user_id'] != $combat['id_joueur'] && $combat['id_adversaire'] == 0)
{
//La si l'id du joueur et différent de id_joueur, tout est stocké dans adversaire
mysql_query("UPDATE play SET score = $score WHERE id= $game_id") or die (mysql_error);
$sql = "INSERT INTO combat(id_adversaire, adversaire_score, adversaire_a_joue) VALUES('$partie[user_id]','$score','1')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
else
{
//Sinon ici je crée un nouveau combat et je stock dans joueur
mysql_query("UPDATE play SET score = $score WHERE id= $game_id") or die (mysql_error);
$new_id = mysql_insert_id();
$sql = "INSERT INTO combat(id_joueur, joueur_score, joueur_a_joue) VALUES('$partie[user_id]','$score','1')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
// Compter le nombre de combats où il manque un adversaire et où le joueur n'est pas le joueur actuel
$combat_en_attentes = mysql_query("SELECT COUNT combats WHERE id_joueur != " . $partie['user_id'] . " AND id_adversaire = 0");
if($combat_en_attentes > 0) {
// Récupérer le premier combat en attente
$query = mysql_query("SELECT combats WHERE id_joueur != " . $partie['user_id'] . " AND id_adversaire = 0 LIMIT 0, 1");
$combat_en_attente = mysql_fetch_array($query);
// Calculer le résultat et donner les récompenses, ici 3 points si gagné, 1 point si perdu, 2 points si match nul
if($combat_en_attente['joueur_score'] > $score) {
// id_joueur gagne
$resultat = 1;
mysql_query("UPDATE joueurs SET points = points + 3 WHERE id = " . $combat_en_attente['id_joueur']);
mysql_query("UPDATE joueurs SET points = points + 1 WHERE id = " . $partie['user_id']);
} elseif($combat_en_attente['joueur_score'] < $score) {
$resultat = 0;
// id_adversaire gagne
mysql_query("UPDATE joueurs SET points = points + 1 WHERE id = " . $combat_en_attente['id_joueur']);
mysql_query("UPDATE joueurs SET points = points + 3 WHERE id = " . $partie['user_id']);
} else {
$resultat = 2;
// match nul
mysql_query("UPDATE joueurs SET points = points + 2 WHERE id = " . $combat_en_attente['id_joueur']);
mysql_query("UPDATE joueurs SET points = points + 2 WHERE id = " . $partie['user_id']);
}
// Modifier les valeurs de l'adversaire
mysql_query("UPDATE combats SET id_adversaire = " . $partie['user_id'] . ", adversaire_score = " . $score . ", adversaire_a_joue = 1, resultat = " . $resultat . " WHERE id = " . $combat_en_attente['id']);
} else {
// Création d'un nouveau combat
$nouveau_combat = mysql_query("INSERT INTO combats(id_joueur, joueur_score, joueur_a_jouer) VALUES(" . $partie['user_id'] . ", " . $score . ", 1)");
}
Cela implique une table combats avec les colonnes (id, id_joueur, id_adversaire, joueur_score, joueur_a_joue, adversaire_score, adversaire_a_joue, resultat) et la table joueurs qui contient au minimum les colonnes (id, points).
Maintenant à toi d'adapter.