IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

calcul de point


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut calcul de point
    bonjour tout le monde,

    J'ai un petit soucis avec un script en php.
    Pour résumer, j'ai 2 joueurs et je voudrais calculer une performance.

    j'ai donc 2 tables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    CREATE TABLE IF NOT EXISTS `joueur_1` (
      `id` int(10) NOT NULL AUTO_INCREMENT,
      `ronde` int(10) DEFAULT NULL,
      `joueur_id` varchar(50) DEFAULT NULL,
      `couleur` varchar(10) DEFAULT NULL,
      `point` varchar(10) DEFAULT NULL,
      `tournois_id` int(10) DEFAULT NULL,
      `appariement` int(10) DEFAULT NULL,
      `table` int(11) DEFAULT NULL,
      `Performance` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
     
    --
    -- Contenu de la table `joueur_1`
    --
     
    INSERT INTO `joueur_1` (`id`, `ronde`, `joueur_id`, `couleur`, `point`, `tournois_id`, `appariement`, `table`, `Performance`) VALUES
    (1, 1, '1', 'Blanc', '1', 1, 1, 1, NULL),
    (2, 1, '5', 'Blanc', '0', 1, 2, 2, NULL),
    (3, 1, '8', 'Blanc', '0.5', 1, 3, 3, NULL),
    (4, 1, '2', 'Blanc', '0', 1, 4, 4, NULL),
    (5, 1, '4', 'Blanc', '1', 1, 5, 5, NULL);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    CREATE TABLE IF NOT EXISTS `joueur_2` (
      `id` int(10) NOT NULL AUTO_INCREMENT,
      `ronde` int(10) DEFAULT NULL,
      `joueur_id` varchar(50) DEFAULT NULL,
      `couleur` varchar(10) DEFAULT NULL,
      `point` varchar(10) DEFAULT NULL,
      `tournois_id` int(10) DEFAULT NULL,
      `appariement` int(11) DEFAULT NULL,
      `table` int(11) DEFAULT NULL,
      `Performance` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
     
    --
    -- Contenu de la table `joueur_2`
    --
     
    INSERT INTO `joueur_2` (`id`, `ronde`, `joueur_id`, `couleur`, `point`, `tournois_id`, `appariement`, `table`, `Performance`) VALUES
    (1, 1, '9', 'Noir', '0', 1, 6, 1, NULL),
    (2, 1, '3', 'Noir', '1', 1, 7, 2, NULL),
    (3, 1, '7', 'Noir', '0.5', 1, 8, 3, NULL),
    (4, 1, '10', 'Noir', '1', 1, 9, 4, NULL),
    (5, 1, '6', 'Noir', '0', 1, 10, 5, NULL);
    Pour calculer le performance du joueur1.
    Je dois prendre le classement du joueur adverse.
    Ensuite regarde si le joueur1 a gagné
    -si c'est le cas je prend le classement du joueur adverse et je lui ajoute 350.
    -sinon je garde uniquement le classement du joueur adverse.

    Le resulat que j'obtiens je dois l'ajouter a ma base du joueur1 dans performance

    Voici mon script PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    $resultat = mysql_query("SELECT joueur_2.joueur_id AS ID, CONCAT_WS( ' ', joueurs_nom, `joueurs_prenom` ) AS joueur, joueur_2.appariement AS Appariement, inscription.joueurs_classement, joueur_2.point FROM joueur_2, joueurs, inscription WHERE joueur_2.joueur_id = joueurs.joueurs_id AND inscription.joueurs_id = joueur_2.joueur_id AND joueur_2.tournois_id = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' ORDER BY joueur_2.appariement");
    while ($row = mysql_fetch_assoc($resultat)) 
    	{
     
    	if ($row[4] == 1)
    		{
    		$resultat2 = mysql_query("SELECT * FROM `joueur_1` where `tournois_id` = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' order by appariement ASC");	
    while ($row2 = mysql_fetch_assoc($resultat2)) 
    			{
    $resultat3 = mysql_query("UPDATE `joueur_1` SET `Performance` = '".$row[3]."+350' where joueur_id='".$row2['joueur_id']."' AND ronde='".$_POST['ronde']."' AND `tournois_id` = '".$_GET['tournois']."' "); 
    			}
     
    		}
    else
    		{
    		$resultat2 = mysql_query("SELECT * FROM `joueur_1` where `tournois_id` = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' order by appariement ASC");	
    while ($row2 = mysql_fetch_assoc($resultat2)) 
    			{
    $resultat3 = mysql_query("UPDATE `joueur_1` SET `Performance` = '".$row[3]."' where joueur_id='".$row2['joueur_id']."' AND ronde='".$_POST['ronde']."' AND `tournois_id` = '".$_GET['tournois']."' "); 
    			}
    		}
     
    }
    Merci pour vote aide.
    Cordialement

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut
    voici une modif qui ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?
    $resultat = mysql_query("SELECT joueur_2.joueur_id AS ID, CONCAT_WS( ' ', joueurs_nom, `joueurs_prenom` ) AS joueur, joueur_2.appariement AS Appariement, inscription.joueurs_classement, joueur_2.point FROM joueur_2, joueurs, inscription WHERE joueur_2.joueur_id = joueurs.joueurs_id AND inscription.joueurs_id = joueur_2.joueur_id AND joueur_2.tournois_id = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' ORDER BY joueur_2.appariement");
    while ($row = mysql_fetch_assoc($resultat)) 
    	{
     
    	if ($row[4] == 1)
    		{
    		$nb=$row[4]+350;
    		}
    else
    		{
    		$nb=$row[4];
    		}
     
    $resultat1 = mysql_query("SELECT * FROM `joueur_1` where `tournois_id` = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' order by appariement ASC");	
    while ($row1 = mysql_fetch_assoc($resultat1)) 
    			{
    $resultat2 = mysql_query("UPDATE `joueur_1` SET `Performance` = '".$nb."' where joueur_id='".$row1[2]."' AND ronde='".$_POST['ronde']."' AND `tournois_id` = '".$_GET['tournois']."' "); 
    			}
     
    }
     
    ?>

  3. #3
    Membre expérimenté
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Par défaut
    Qu'est-ce qui ne fonctionne pas ? Quel est ton résultat actuel ? As-tu testé ton algorithme avec un test minimal (un joueur1 et un joueur2) ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?
    $requete_txt = "SELECT joueur_2.joueur_id AS ID, CONCAT_WS( ' ', joueurs_nom, `joueurs_prenom` ) AS joueur, joueur_2.appariement AS Appariement, inscription.joueurs_classement, joueur_2.point FROM joueur_2, joueurs, inscription WHERE joueur_2.joueur_id = joueurs.joueurs_id AND inscription.joueurs_id = joueur_2.joueur_id AND joueur_2.tournois_id = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' ORDER BY joueur_2.appariement";
    $result_sql = mysql_query($requete_txt);
    while ($resultat = mysql_fetch_row($result_sql))
    	{
     
     
     
    if ($resultat[4] == 1)
    		{
    		$nb=$resultat[4]+350;
    $requete_txt1 ="SELECT * FROM `joueur_1` where `tournois_id` = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' order by appariement ASC";	
    $result_sql1 = mysql_query($requete_txt1);
    while ($resultat1 = mysql_fetch_row($result_sql1))
    			{
    $requete_txt2 ="UPDATE `joueur_1` SET `Performance` = '".$nb."' where joueur_id='".$resultat1[2]."' AND ronde='".$_POST['ronde']."' AND `tournois_id` = '".$_GET['tournois']."' ";
    $result_sql2 = mysql_query($requete_txt2);
    			}
    		}
     
     
     
    else
    		{
    		$nb=$resultat[4];
    $requete_txt1 ="SELECT * FROM `joueur_1` where `tournois_id` = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' order by appariement ASC";	
    $result_sql1 = mysql_query($requete_txt1);
    while ($resultat1 = mysql_fetch_row($result_sql1))
    			{
    $requete_txt2 ="UPDATE `joueur_1` SET `Performance` = '".$nb."' where joueur_id='".$resultat1[2]."' AND ronde='".$_POST['ronde']."' AND `tournois_id` = '".$_GET['tournois']."' ";
    $result_sql2 = mysql_query($requete_txt2);
    			}
    		}
    	}
    ?>
    voici mon dernier code... il me mets bien a jour ma table joueur1 mais il ne boucle pas et je n'ai pas les bon resultat...


    Voici ce qu'il me fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO `joueur_1` (`id`, `ronde`, `joueur_id`, `couleur`, `point`, `tournois_id`, `appariement`, `table`, `Performance`) VALUES
    (1, 1, '1', 'Blanc', '1', 1, 1, 1, 0),
    (2, 1, '5', 'Blanc', '0', 1, 2, 2, 0),
    (3, 1, '8', 'Blanc', '0.5', 1, 3, 3, 0),
    (4, 1, '2', 'Blanc', '0', 1, 4, 4, 0),
    (5, 1, '4', 'Blanc', '1', 1, 5, 5, 0);
    or je devrait avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO `joueur_1` (`id`, `ronde`, `joueur_id`, `couleur`, `point`, `tournois_id`, `appariement`, `table`, `Performance`) VALUES
    (1, 1, '1', 'Blanc', '1', 1, 1, 1, 1352),
    (2, 1, '5', 'Blanc', '0', 1, 2, 2, 1000),
    (3, 1, '8', 'Blanc', '0.5', 1, 3, 3, 750),
    (4, 1, '2', 'Blanc', '0', 1, 4, 4, 602),
    (5, 1, '4', 'Blanc', '1', 1, 5, 5, 705);

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    $requete_txt = "SELECT joueur_2.joueur_id AS ID, CONCAT_WS( ' ', joueurs_nom, `joueurs_prenom` ) AS joueur, joueur_2.appariement AS Appariement, inscription.joueurs_classement, joueur_2.point FROM joueur_2, joueurs, inscription WHERE joueur_2.joueur_id = joueurs.joueurs_id AND inscription.joueurs_id = joueur_2.joueur_id AND joueur_2.tournois_id = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' ORDER BY joueur_2.appariement";
    $result_sql = mysql_query($requete_txt);
    while ($resultat = mysql_fetch_row($result_sql))
    	{
    	if ($resultat[4] == 0)
    		{
    		$nb=$resultat[3]+350;
    $requete_txt1 ="SELECT * FROM `joueur_1` where `tournois_id` = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' order by appariement ASC";	
    $result_sql1 = mysql_query($requete_txt1);
    while ($resultat1 = mysql_fetch_row($result_sql1))
    			{
    $requete_txt2 ="UPDATE `joueur_1` SET `Performance` = '".$nb."' where joueur_id='".$resultat1[2]."' AND ronde='".$_POST['ronde']."' AND `tournois_id` = '".$_GET['tournois']."' ";
    $result_sql2 = mysql_query($requete_txt2);
    			}
    		}
     
    	}
    Je viens de faire ca.. j'y suis presque .. mais en fait il me mets sur tous les joueurs 705 or il devrait me mettre ca uniquement sur le dernier joueur1

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Par défaut
    Voici mon nouveau script...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?
    $requete_txt = "SELECT joueur_2.joueur_id AS ID, joueur_2.appariement AS Appariement, inscription.joueurs_classement, joueur_2.point FROM joueur_2, joueurs, inscription WHERE joueur_2.joueur_id = joueurs.joueurs_id AND inscription.joueurs_id = joueur_2.joueur_id AND joueur_2.tournois_id = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' AND point='0' ORDER BY joueur_2.appariement";
    $result_sql = mysql_query($requete_txt);
    while ($resultat = mysql_fetch_row($result_sql))
    	{
    		$nb=$resultat[2]+350;
    		$requete_txt1 ="SELECT `joueur_id` FROM `joueur_1` WHERE `tournois_id` = '".$_GET['tournois']."' AND ronde = '".$_POST['ronde']."' ORDER BY appariement ASC ";	
    $result_sql1 = mysql_query($requete_txt1);
    while ($resultat1 = mysql_fetch_row($result_sql1))
    			{
    $requete_txt2 ="INSERT INTO `performance` (`joueur_id` ,`Performance` ,`tournois_id` ,`ronde` )VALUES ( '".$resultat1[0]."','".$nb."','".$_GET['tournois']."','".$_POST['ronde']."')";
    mysql_query($requete_txt2);
    			}
    		}
    ?>
    Le truc maintenant c'est ce que je n'ai pas le bon resultat...
    il m'afffiche

    dans la table performance :
    1_1352_1_1
    5_1352_1_1
    8_1352_1_1
    2_1352_1_1
    4_1352_1_1
    1_1350_1_1
    5_1350_1_1
    8_1350_1_1
    2_1350_1_1
    4_1350_1_1
    1_1100_1_1
    5_1100_1_1
    8_1100_1_1
    2_1100_1_1
    4_1100_1_1
    1_952_1_1
    5_952_1_1
    8_952_1_1
    2_952_1_1
    4_952_1_1
    1_705_1_1
    5_705_1_1
    8_705_1_1
    2_705_1_1
    4_705_1_1



    Or ce que je voudrais obtenir :

    1_1352_1_1
    5_1350_1_1
    8_1100_1_1
    2_952_1_1
    4_705_1_1


    Merci pour votre aide.... Je dois rendre le devoir dans moins d'une semaine.

Discussions similaires

  1. Calcul de points sur un cone
    Par lenoil dans le forum Mathématiques
    Réponses: 1
    Dernier message: 21/03/2008, 15h44
  2. Calculs de points fixes
    Par iamsebfont dans le forum MATLAB
    Réponses: 2
    Dernier message: 08/10/2007, 15h45
  3. Calculer les points
    Par ameno_123 dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2007, 22h08
  4. calcul coordonnées point
    Par diambu dans le forum Langage
    Réponses: 15
    Dernier message: 23/07/2007, 16h25
  5. calculs des points
    Par rabi dans le forum OpenGL
    Réponses: 11
    Dernier message: 12/02/2004, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo