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 :

Impossible d'afficher le total de chaque colonne


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Impossible d'afficher le total de chaque colonne
    Code html : 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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    <!DOCTYPE html>
    <html lang="fr">
     
    <head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="css/bootstrap.css">
        <link rel="stylesheet" href="css/style.css">
        <link rel="stylesheet" href="css/carousel.css">
        <title>Coupe du monde de rugby 2011</title>
        <script src="js/jquery.js"></script>
        <script src="js/bootstrap.min.js"></script>
    </head>
    <?php
    try{
        $bdd=new PDO('mysql:host=localhost;dbname=rugby2011;charset=utf8', 'root','');
        $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }catch(Exception $e){
        die('Erreur :' . $e->getMessage());
    }
    $response = $bdd->query('SELECT * FROM scorematch ');
    $scorematch = $response->fetchAll(); 
    ?>
    <body>
    	<h1>Coupe du monde de rugby 2011</h1>
    	<div id="matchpoule">
    		<div class="container">
    			<div class="row">
    				<div class="col-sm-12">
                        <?php                       
                        if (!empty($scorematch)){
                        $response = $bdd->query('SELECT * FROM scorematch');
                        $scorematch = $response->fetchAll();
                        ?>
                        <table>
                            <tr>
                                <th>Pays</th>
                                <th>Groupe</th>
                                <th>Bonus</th>
                                <th>Score</th>
                                <th>Score</th>
                                <th>Bonus</th>
                                <th>Groupe</th>
                                <th>Pays</th>
                            </tr>
                            <?php
                            foreach($scorematch as $score){
                                echo '<tr><td>'.htmlspecialchars($score['equipe']).'</td><td>'.htmlspecialchars($score['groupe']).'</td><td>'.htmlspecialchars($score['bonus']).'</td><td>'.htmlspecialchars($score['score']).'</td><td>'.htmlspecialchars($score['score2']).'</td><td>'.htmlspecialchars($score['bonus2']).'</td><td>'.htmlspecialchars($score['groupe2']).'</td><td>'.htmlspecialchars($score['equipe2']).'</td></tr>';
                            }
                            ?>
    					</table>
                        <?php
                        }
                        ?>
    				</div>
    			</div>
    		</div>
    	</div>
    	<div id="classementpoule">
    		<div class="container">
    			<div class="row">
    				<div class="col-sm-12">
                    <a href="includes/scoreequipe.php">Points par équipe</a>
    					<h4 align="center">Poule A</h4>
                        <table>
                            <?php
                            $response = $bdd->query("SELECT * FROM pointsequipe WHERE equipe ='Nouvelle Zélande'");
                            $pointsequipe = $response->fetchAll();
     
                            $response1=$bdd->query("SELECT SUM(bonus) AS totalbonus FROM pointsequipe");
                            $bonus=$response1->fetch();
                            $bonus=$totalbonus['totalbonus'];
                            
                            $response1=$bdd->query("SELECT SUM(pour) AS totalpour FROM pointsequipe");
                            $pour=$response1->fetch();
                            $pour=$totalpour['totalpour'];
                            
                            $response1=$bdd->query("SELECT SUM(contre) AS totalcontre FROM pointsequipe");
                            $contre=$response1->fetch();
                            $contre=$totalcontre['totalcontre'];
                            
                            $response1=$bdd->query("SELECT $totalpour-$totalcontre AS differences FROM pointsequipe");
                            $differences=$response1->fetch();
                            $differences=$difference['difference'];
                            ?>
                            <tr>
                                <th>Equipe</th>
                                <th>Points</th>
                                <th>Buts pour</th>
                                <th>Buts contre</th>
                                <th>Différence</th>
                            </tr>
                            <?php
                            if (!empty($pointsequipe)){
                                    echo '<tr><td>'.htmlspecialchars($data['equipe']).'</td><td>'.htmlspecialchars($totalbonus['totalbonus']).'</td><td>'.htmlspecialchars($totalpour['totalpour']).'</td><td>'.htmlspecialchars($totalcontre['totalcontre']).'</td><td>'.htmlspecialchars($difference['difference']).'</td></tr>';
                            }
                            ?>
                        </table>
    					<h4 align="center">Poule B</h4>
                        <table>
                            <tr>
                                <th>Equipe</th>
                                <th>Points</th>
                                <th>Buts pour</th>
                                <th>Buts contre</th>
                                <th>Différence</th>
                            </tr>
                        </table>
    					<h4 align="center">Poule C</h4>
                        <table>
                            <tr>
                                <th>Equipe</th>
                                <th>Points</th>
                                <th>Buts pour</th>
                                <th>Buts contre</th>
                                <th>Différence</th>
                            </tr>
                        </table>
    					<h4 align="center">Poule D</h4>
                        <table>
                            <tr>
                                <th>Equipe</th>
                                <th>Points</th>
                                <th>Buts pour</th>
                                <th>Buts contre</th>
                                <th>Différence</th>
                            </tr>
                        </table>
    				</div>
    			</div>
    		</div>
    	</div>
        <script type="application/javascript" src="js/jquery-3.1.1.min.js"></script>
        <script src="js/script.js"></script>
    </body>
    </html>

    L'idée, c'est d'afficher le total de chaque colonne (bonus, buts pour, buts contre, différence) pour chaque équipe dans le fichier index.php. Par exemple, pour le Nouvelle-Zélande, le total de chaque colonne.
    Nom : bdd.jpg
Affichages : 123
Taille : 252,1 Ko

    Il s'agit des erreurs qui s'affichent.
    Nom : erreur.jpg
Affichages : 121
Taille : 259,8 Ko

    Merci d'avance.
    Dernière modification par NoSmoking ; 03/08/2018 à 17h57.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Pourquoi tu ne créerais pas à la place, dans ta table pointsequipe, une colonne total ?

    Il te suffirait alors simplement d'écrire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total= $equipe + $bonus +$pour+$contre+$difference;
    et il te manquerait plus qu'a définir chacune de ces variables ça te simplifierait le code je pense. Je suis débutant mais je pense que c'est plus pratique !

    D'ailleurs pour l'erreur concernant le AS c'est parce que tu sélectionne une variable alors que c'est une clé concernant ta table SQL que tu cherches à sélectionner.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ce je que veux, c'est que ça calcule automatiquement suivant les données que l'on rentre dans la bdd

  4. #4
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Points : 770
    Points
    770
    Par défaut
    Bonsoir, utilise la fonction SUM et la clause Group By


    Cordialement.

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 602
    Points : 818
    Points
    818
    Par défaut
    Bonjour,
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(ta_colonne) AS total FROM ta_table
    J'espère aussi que tu n'as pas rempli la colonne difference à la main.

  6. #6
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Points : 770
    Points
    770
    Par défaut
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT equipe, SUM(bonus) As Bonus, SUM(pour) As Pour, SUM(contre) As Contre, SUM(difference) As Difference from pointsequipe Group By equipe;

    Cordialement.

  7. #7
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Dans la vie il faut avoir de l’ambition c’est même comme ça qu’on avance. Mais il faut savoir aussi quand on en a trop. Et là c’est le cas. Les problèmes ne se limitent pas à une requête mysql mal écrite. Il y a plein de concepts de base de l’informatique et du sql qui ne sont pas maîtrisés et malheureusement en en corrigeant un on tombera sur le suivant. Je cite (pas forcément dans l’ordre ni forcément exhaustif).
    - variable php dans la clause select.
    - requête sql sans clause where.
    - utilisation des résultats des requêtes.
    - copié/collé de code sans comprendre ce qu’il fait.

    Attention. Il ne faut pas y voir une critique mais seulement la constatation qu’on a tous commencé à marcher avant de courir et que partir sur un projet qui est au-delà de nos possibilités est le meilleur moyen pour s’en dégoûter. Alors qu’en commençant petit, non seulement on apprend les concepts les uns après les autres mais en plus ça amène une satisfaction personnelle qui pousse à aller de l’avant et à faire des choses de plus en plus compliquées.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par moimp Voir le message
    Bonjour,
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(ta_colonne) AS total FROM ta_table
    J'espère aussi que tu n'as pas rempli la colonne difference à la main.
    si

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Manequin Voir le message
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT equipe, SUM(bonus) As Bonus, SUM(pour) As Pour, SUM(contre) As Contre, SUM(difference) As Difference from pointsequipe Group By equipe;

    Cordialement.
    Merci cela fonctionne

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par badaze Voir le message
    Dans la vie il faut avoir de l’ambition c’est même comme ça qu’on avance. Mais il faut savoir aussi quand on en a trop. Et là c’est le cas. Les problèmes ne se limitent pas à une requête mysql mal écrite. Il y a plein de concepts de base de l’informatique et du sql qui ne sont pas maîtrisés et malheureusement en en corrigeant un on tombera sur le suivant. Je cite (pas forcément dans l’ordre ni forcément exhaustif).
    - variable php dans la clause select.
    - requête sql sans clause where.
    - utilisation des résultats des requêtes.
    - copié/collé de code sans comprendre ce qu’il fait.

    Attention. Il ne faut pas y voir une critique mais seulement la constatation qu’on a tous commencé à marcher avant de courir et que partir sur un projet qui est au-delà de nos possibilités est le meilleur moyen pour s’en dégoûter. Alors qu’en commençant petit, non seulement on apprend les concepts les uns après les autres mais en plus ça amène une satisfaction personnelle qui pousse à aller de l’avant et à faire des choses de plus en plus compliquées.
    Ce genre de discours ne m'aide pas à avancer. Pour moi, ton discours est inutile

  11. #11
    Invité
    Invité(e)
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    <!DOCTYPE html>
    <html lang="fr">
     
    <head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="css/bootstrap.css">
        <link rel="stylesheet" href="css/style.css">
        <link rel="stylesheet" href="css/carousel.css">
        <title>Coupe du monde de rugby 2011</title>
        <script src="js/jquery.js"></script>
        <script src="js/bootstrap.min.js"></script>
    </head>
    <?php
    try{
        $bdd=new PDO('mysql:host=localhost;dbname=rugby2011;charset=utf8', 'root','');
        $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }catch(Exception $e){
        die('Erreur :' . $e->getMessage());
    }
    $response = $bdd->query('SELECT * FROM scorematch ');
    $scorematch = $response->fetchAll(); 
    ?>
    <body>
    	<h1>Coupe du monde de rugby 2011</h1>
    	<div id="matchpoule">
    		<div class="container">
    			<div class="row">
    				<div class="col-sm-12">
                        <?php                       
                        if (!empty($scorematch)){
                        $response = $bdd->query('SELECT * FROM scorematch');
                        $scorematch = $response->fetchAll();
                        ?>
                        <table>
                            <tr>
                                <th>Pays</th>
                                <th>Groupe</th>
                                <th>Bonus</th>
                                <th>Score</th>
                                <th>Score</th>
                                <th>Bonus</th>
                                <th>Groupe</th>
                                <th>Pays</th>
                            </tr>
                            <?php
                            foreach($scorematch as $score){
                                echo '<tr><td>'.htmlspecialchars($score['equipe']).'</td><td>'.htmlspecialchars($score['groupe']).'</td><td>'.htmlspecialchars($score['bonus']).'</td><td>'.htmlspecialchars($score['score']).'</td><td>'.htmlspecialchars($score['score2']).'</td><td>'.htmlspecialchars($score['bonus2']).'</td><td>'.htmlspecialchars($score['groupe2']).'</td><td>'.htmlspecialchars($score['equipe2']).'</td></tr>';
                            }
                            ?>
    					</table>
                        <?php
                        }
                        ?>
    				</div>
    			</div>
    		</div>
    	</div>
    	<div id="classementpoule">
    		<div class="container">
    			<div class="row">
    				<div class="col-sm-12">
                    <a href="includes/scoreequipe.php">Points par équipe</a>
    					<h4 align="center">Poule A</h4>
                        <table>
                            <?php
                            $response = $bdd->query("SELECT equipe, SUM(bonus) AS bonus, SUM(pour) AS pour, SUM(contre) AS contre, SUM(difference) AS difference FROM pointsequipe GROUP BY equipe");
                            $pointsequipe = $response->fetchAll();
                            ?>
                            <tr>
                                <th>Equipe</th>
                                <th>Points</th>
                                <th>Buts pour</th>
                                <th>Buts contre</th>
                                <th>Différence</th>
                            </tr>
                            <?php
                            if (!empty($pointsequipe)){
                                foreach($pointsequipe as $points){
                                    echo '<tr><td>'.htmlspecialchars($points['equipe']).'</td><td>'.htmlspecialchars($points['bonus']).'</td><td>'.htmlspecialchars($points['pour']).'</td><td>'.htmlspecialchars($points['contre']).'</td><td>'.htmlspecialchars($points['difference']).'</td></tr>';
                                }
                            }
                            ?>
                        </table>
    					<h4 align="center">Poule B</h4>
                        <table>
                            <tr>
                                <th>Equipe</th>
                                <th>Points</th>
                                <th>Buts pour</th>
                                <th>Buts contre</th>
                                <th>Différence</th>
                            </tr>
                        </table>
    					<h4 align="center">Poule C</h4>
                        <table>
                            <tr>
                                <th>Equipe</th>
                                <th>Points</th>
                                <th>Buts pour</th>
                                <th>Buts contre</th>
                                <th>Différence</th>
                            </tr>
                        </table>
    					<h4 align="center">Poule D</h4>
                        <table>
                            <tr>
                                <th>Equipe</th>
                                <th>Points</th>
                                <th>Buts pour</th>
                                <th>Buts contre</th>
                                <th>Différence</th>
                            </tr>
                        </table>
    				</div>
    			</div>
    		</div>
    	</div>
        <script type="application/javascript" src="js/jquery-3.1.1.min.js"></script>
        <script src="js/script.js"></script>
    </body>
     
    </html>
    Nom : total.jpg
Affichages : 107
Taille : 222,7 Ko

    Ce que je souhaite afficher, pour chaque groupe, le total de chaque équipe. Par exemple, le total de chaque équipe du groupe A. Et ainsi de suite.

  12. #12
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT poule, SUM(bonus) As sum_bonus, SUM(pour) As sum_pour, SUM(contre) As sum_contre, SUM(difference) As sum_difference 
    from pointsequipe 
    group py poule
    order by poule;

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- tu avais déjà ouvert une autre discussion sur le même sujet.
    Le minimum serait d'y répondre, et/ou de la fermer (la discussion...).
    Dans l'état actuel (ton UNIQUE table SQL), la méthode que j'ai donné ici reste valable :
    • tu fais une requête par équipe (autant de requêtes que d'équipes)

    Citation Envoyé par Celira Voir le message
    Même en lisant le thread depuis le début, je ne vois pas où est stockée l'information qui indique quelle équipe appartient à quelle poule.
    Tant que tu n'auras pas réglé cette question, tu vas continuer à galérer.

    2- Il faut DEUX AUTRES TABLES en BDD pour mettre en relation les poules et les équipes.

    t_poules :
    • id_poule (auto-incrément)
    • nom_poule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1 'poule A'
    2 'poule B'
    3 'poule C'
    ...
    t_poules_equipes : (table "relationnelle")
    • id_poule
    • nom_equipe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1 'Nouvelle-Zélande'
    1 'France'
    1 '...'
    ...
    2 'Angleterre'
    2 'Argentine'
    ...
    3 '...'
    ...
    Une fois ces tables SQL correctement remplies, le code de Dendrite s'écrira :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT tpl.nom_poule, 
       SUM(bonus) AS sum_bonus, 
       SUM(pour) AS sum_pour, 
       SUM(contre) AS sum_contre, 
       SUM(difference) AS sum_difference 
    FROM pointsequipe AS eqp
    INNER JOIN t_poules_equipes AS tpe
       ON tpe.nom_equipe = eqp.equipe
    INNER JOIN t_poules AS tpl
       ON tpe.id_poule = tpl.id_poule
    GROUP BY tpe.nom_poule
    ORDER tpl.nom_poule, eqp.equipe;
    Et là, tu pourras remplir tous tes tableaux (<table>), rangés par poule.


    3- Normalement, dans un système bien conçu dès le départ, on aurait une AUTRE table :
    t_equipes :
    • id_equipe (auto-incrément)
    • nom_equipe
    • ... (autres colonnes, ne concernant que l'équipe : blason/logo,...)

    Et la table relationnelle t_poules_equipes serait :
    • id_poule
    • id_equipe

    Mais bon... ne compliquons pas outre mesure...
    Dernière modification par Invité ; 05/08/2018 à 08h24.

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

Discussions similaires

  1. impossible d'afficher le total d'une colonne
    Par ARNAUD ZIRIPE dans le forum WinDev
    Réponses: 5
    Dernier message: 22/05/2018, 14h10
  2. [WD20] TABLE TCD récupérer chaque total de chaque colonne
    Par radouane963 dans le forum WinDev
    Réponses: 4
    Dernier message: 27/01/2017, 17h46
  3. Impossible d'afficher la moyenne de mes colonnes.
    Par Serghez dans le forum Langage
    Réponses: 6
    Dernier message: 24/05/2012, 03h17
  4. Réponses: 4
    Dernier message: 13/01/2010, 09h37
  5. [MySQL] afficher la durée totale après chaque date
    Par younes371 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/08/2007, 12h46

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