Bonjour,

Je souhaite fair la somme d'une colonne de mysql php mais je n'y arrive pas:

                                $sql1 = 'SELECT musique, SUM(musique) 
                                FROM je_fais_des_reves 
                                WHERE musique=1
                                GROUP BY musique
                                ORDER BY musique ASC';
                                $result1 = $conn->query($sql1);

Je vous remercie de votre aide

7 réponses


raizen
Réponse acceptée

COUNT va compter le nombre de ligne dans table. SUM va calculer la valeur total d'une colonne.

Disons que t'as 5 lignes avec:
Musique = 1
Musique = 4
Musique = 3
Musique = 5
Musique = 5

En utilisant la requête suivante:

SELECT SUM(musique) as totalVote
FROM je_fais_des_reves;

Tu auras pour résultat: totalVote = 18

En utilisant la requête suivante:

SELECT COUNT(musique) as totalVoteCinqEtoile
FROM je_fais_des_reves
WHERE musique = 5;

Tu auras pour résultat: totalVoteCinqEtoile = 2

Dans ton tableau de stats, tu cherches à comptabiliser les votes par nombre d'étoile. Donc combien on a de vote pour 1 étoile, combien a de vote pour 2 étoiles, combien on a de vote pour 3 étoiles, ainsi dessuite.

A ton avis, de quelle fonction as tu besoin pour ce tableau de stats ? COUNT ou SUM ?

Hello,
essai : SELECT SUM(musique)
en gardant le reste ensuite

barpoi78
Auteur

J'ai essayé mais cela me retourne l'erreur: index non défini et c'est normal car avant SUM on ne SELECT rien:

                            $sql1 = 'SELECT SUM(musique) 
                            FROM je_fais_des_reves 
                            WHERE musique=1
                            GROUP BY musique
                            ORDER BY musique ASC';
                            $result1 = $conn->query($sql1);

Salut,

Ce n'est pas plutôt la fonctionne COUNT qu'il te faut ?
Pourquoi veux-tu faire la somme de musique ?

barpoi78
Auteur

Super ça marche bien et finalement, j'utilise la dernière requête qui permet de faire le total par étoiles et encore merci !

Super, bon courage !