=1) { echo "Ce joueur existe deja  :" .$prenom; echo "
"; } else { //$sql = "SELECT elo FROM elo_affectation WHERE joueur ='".$prenom."'"; $sql = "SELECT elo FROM " .$_SESSION['elo_affectation'] ." WHERE joueur ='".$prenom."'"; $result = mysql_query($sql); $row = mysql_fetch_array($result); $elo = $row['elo']; //$sql = " INSERT INTO classement "; $sql = " INSERT INTO " .$_SESSION['classement']; $sql = $sql . " (joueur, elo, parties, prior, initial) VALUES "; $sql = $sql . " ('$prenom', '$elo','$partie','$prior', '$elo') "; //echo $sql; //echo "
"; $result = mysql_query($sql); if (!$result) { echo("ERROR: " . mysql_error() . "\n$SQL\n"); } } } } /******************************************************************************************/ function inserer_partie($donnees) { $timestamp_ajout = $donnees[0]; $J1 = $donnees[1] ; $J2 = $donnees[2]; $score_blanc = $donnees[3]; $score_noir = $donnees[4]; $sql = "SELECT * FROM " .$_SESSION['parties']; $results = mysql_query($sql); $n = mysql_num_rows($results); // table vide, c'est la premiére partie if($n == 0) { algo_elo($donnees, "nostatistique", "sql", 0); $gagnant = find_winner(); insert_chessmaster_DB($J1, $J2, $gagnant, $timestamp_ajout); } else ..... a faire //$sql = "SELECT * FROM parties"; $sql = "SELECT * FROM " .$_SESSION['parties']; $results = mysql_query($sql); while($row = mysql_fetch_assoc($results)) { $list_timestamp[] = intval($row["date"]); } $timestamp_ajout = $donnees[0]; $J1 = $donnees[1] ; $J2 = $donnees[2]; $score_blanc = $donnees[3]; $score_noir = $donnees[4]; // retourne le dernier timestamp $last_timestamp = end($list_timestamp); // il s'agit de la suite de la table : un simple ajout sans un le recalcule if($timestamp_ajout > $last_timestamp) { algo_elo($donnees, "nostatistique", "sql", 0); //$sql = "SELECT * FROM chessmaster"; $sql = "SELECT * FROM " .$_SESSION['chessmaster']; $results = mysql_query($sql); $n = mysql_num_rows($results); //$sql = "SELECT * FROM chessmaster WHERE id = '$n' "; $sql = "SELECT * FROM " .$_SESSION['chessmaster'] ." WHERE id = '$n' "; $results = mysql_query($sql); $row = mysql_fetch_assoc($results); $master = $row['gagnant']; // NOTA: $J1, $J2, $gagnant, $timestamp) if($J1 == $master && $J2 != $master) { if($score_blanc == 1) { insert_chessmaster_DB($J1, $J2, $J1, $timestamp_ajout); } if($score_blanc == 0 ) { insert_chessmaster_DB($J1, $J2, $J2, $timestamp_ajout); } if($score_blanc == 0.5 && $score_noir == 0.5) { //avant la modif: insert_chessmaster_DB($J1, $J2, $J1, $timestamp_ajout); insert_chessmaster_DB($J1, $J2, $J2, $timestamp_ajout); // le noir gagne } } if($J1 != $master && $J2 == $master) { if($score_noir == 1) { insert_chessmaster_DB($J1, $J2, $J2, $timestamp_ajout); } if($score_noir == 0) { insert_chessmaster_DB($J1, $J2, $J1, $timestamp_ajout); } if($score_blanc == 0.5 && $score_noir == 0.5) { insert_chessmaster_DB($J1, $J2, $J2, $timestamp_ajout); } } $retour = "simple"; } else { // recherche si la date existe ? // retourne la cle si elle existe $test = array_search( $timestamp_ajout , $list_timestamp); if($test != "") { // timestamp existe... $array = array_count_values($list_timestamp); $nb_partie = $array[$timestamp_ajout]; $index_ajout = $test + $nb_partie - 1; } else { // on fait un recherche pour trouver le timestamp le plus proche $num= $timestamp_ajout; $diff = $num; $min = $num; foreach($list_timestamp as $a) { if( abs($a-$num)< $diff ) { $diff=abs($a-$num); $min=$a; } } $test = array_search( $min , $list_timestamp); $array = array_count_values($list_timestamp); $nb_partie = $array[$min]; // avant if($timestamp_ajout < $min) { $index_ajout = $test - 1 ; } // apres if($timestamp_ajout > $min) { $index_ajout = $test ; } } // un recalcule est obligatoire $tmp = transfert_DB(); $donnees[0] = date('d/m/Y', $timestamp_ajout); $nb_parties = $tmp[0]; $table_fichier = $tmp[1]; $tab1 = array(); $tab2 = array(); for ($i=0; $i <= $index_ajout ; $i++) { $tab1[] = $table_fichier[$i]; } for ($i=$index_ajout + 1 ; $i < $nb_parties; $i++) { $tab2[] = $table_fichier[$i]; } $table[] = $donnees; $tab_global = array_merge($tab1,$table, $tab2); regenerer_DB($tab_global); $retour = "complexe"; } } ?>