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

Langage PHP Discussion :

[Tableaux] Calcul de champ ?


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 11
    Points
    11
    Par défaut [Tableaux] Calcul de champ ?
    Salut groupe, j'avance assez bien dans la création de ma BD pour mon équipe d'hockey.

    J'ai créer des tables et réussi a joindre les informations de ceux-ci dans un tableau.

    Voici mon code :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <table width="600" border="1" cellpadding="0" cellspacing="0">
      <tr bgcolor="#FF6600">
        <td width="50" align="center">#</td>
        <td width="170">Nom</td>
        <td width="55" align="center">PJ</td>
        <td width="55" align="center">Buts</td>
        <td width="55" align="center">Passes</td>
        <td width="55" align="center">Points</td>
        <td width="55" align="center">Pts/Pj</td>
        <td width="55">Pun/Min</td>
      </tr>
      <tr>
        <td colspan="9"><?PHP
     
    include ("../include/mysql_conf.php");
     
    $request = ("select NomFamille, Prénom, Numero from Joueurs where Equipe_id=1");
     
    $request2 = ("select Parties, Buts, Passes, Punitions, (Buts + Passes) as Points, ((Buts + Passes) / Parties) as Moy_PTS from Joueurs_Stats where saison_id=3 order by Points DESC, Buts DESC, Moy_PTS DESC");
     
    $result = mysql_query($request) or die ('erreur dans la requête : '.$request.'  '.mysql_error());
     
    $result2 = mysql_query($request2) or die ('erreur dans la requête : '.$request2.'  '.mysql_error());
     
    while ($resultat = mysql_fetch_array($result) and $resultat2 = mysql_fetch_array($result2))
     
    {
     
    echo'</td></tr><tr><td align="center">';
    print $resultat['Numero'];
    echo'</td><td>';
    print $resultat['Prénom'];
    print '&nbsp;';
    print $resultat['NomFamille'];
    echo'</td>';
    echo'<td align="center">';
    print $resultat2['Parties'];
    echo'</td><td align="center">';
    print $resultat2['Buts'];
    echo'</td><td align="center">';
    print $resultat2['Passes'];
    echo'</td><td align="center">';
    print $resultat2['Points'] ;
    echo'</td><td align="center">';
    print number_format($resultat2['Moy_PTS'],2);
    echo'</td><td align="center">';
    print number_format($resultat2['Punitions'],0);
    echo'</td></tr><tr><td colspan="9">';
     
    }
     
    mysql_close();
    ?>
    </table>
    Maintenant, dans la table Joueurs_Stats j'ai pas encore entré les game_id et les stats matchs par matchs individuellement puisque je ne sais pas comment faire pour calculer par exemple le total des buts pour le joueur avec l'id #1 pour la saison 3.

    Voici mes tables :

    Joueurs = id, NomFamille, Prénom, Naissance, Email, Tel_Maison, Tel_Travail, Adresse, Equipe_id, Position, Numéro, Info, Photo
    Joueurs_Stats = id, Joueur_id, Parties, Buts, Passes, Punitions, Partie_id, Saison_id.

    Par la suite, je pourrais enlever également le champ Parties dans ma table Joueurs_Stats puisqu'on pourra calculer par exmple, 21 parties pour un 1 id etc....

    Merci beaucoup en avance !!

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Exemple plus concret :

    Joueurs_Stats = id, Joueur_id, Buts, Passes, Punitions, Partie_id, Saison_id.

    Pour un meme joueur :
    id = 1 , Joueur_id = 1, Buts = 1, Passes = 0, Punitions = 0, Partie_id = 126, Saison_id = 3.

    id = 2 , Joueur_id = 1, Buts = 0, Passes = 2, Punitions = 2, Partie_id = 220, Saison_id = 3.

    id = 3 , Joueur_id = 1, Buts = 1, Passes = 1, Punitions = 2, Partie_id = 284, Saison_id = 3.

    Alors si vous me suivez bien, dans mon tableau le joueur ayant Joueur_id = 1 devrait afficher

    3 Parties Joués , 3 buts, 2 passes , 5 Points, 1.67 Pts/Partie, 4 punitions


    J'espère que c'Est plus clair !!

    Merci.

  3. #3
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonsoir Guillaume,

    Tu devrais peut-être potasser les fonctions disponibles dans mysql

    SUM, COUNT, GROUP BY ...

    Tu pourrais faire ceci :
    select joueur_id, sum(buts) as s_buts, sum(passes) as s_passes, (sum(buts) + sum(passes)) as points, ((sum(buts) + sum(passes)) / count(joueur_id)) as moyenne from Joueurs_Stats group by joueur_id
    GROUP BY fait ce qu'il dit, il groupe les résultats par (ici) le joueur
    SUM additionne le champ donné entre les parenthèses par joueur (puisque le GROUP BY fonctionne sur le joueur)
    COUNT compte le nombre d'enregistrements

    Le select doit être remanié en fonction de ce que tu cherches, je n'ai pas calculé les punitions, je te le laisse.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    C'est malade ce que j'ai appris aujourd'hui WOW !!!

    Merci beaucoup, toute est nickel !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] insérer des champs et calculer la moyene
    Par nerazzurri dans le forum Langage
    Réponses: 15
    Dernier message: 11/05/2007, 15h24
  2. [Tableaux] Calcul d'itinéraire / route / étapes
    Par gb-ch dans le forum Langage
    Réponses: 9
    Dernier message: 08/08/2006, 08h17
  3. Requête calcul sur champs
    Par tikawua dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/10/2005, 15h26
  4. [Tableaux] Alignement des champs d'un formulaire
    Par jack554 dans le forum Langage
    Réponses: 7
    Dernier message: 15/09/2005, 15h30
  5. [TUNING]calculs de champs
    Par booth dans le forum Oracle
    Réponses: 5
    Dernier message: 30/05/2005, 18h36

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