Additioner les résulats d'un COUNT

Résolu
Signaler
Messages postés
19
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
27 juin 2007
-
Messages postés
19
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
27 juin 2007
-
Bonjour à tous.
J'ai un souci pour obtenir ce que je veux, c'est peut-être tout bête je ne sais plus trop là...
Je souhaite additionner les valeurs d'un COUNT

J'ai 2 tables : themes et questions

quand je fais :
$sql_the_ok = mysql_query("select theme, id from `themes` where id_qcm='" . $qcm. "'");
while ($the_ok = mysql_fetch_array($sql_the_ok))
{
        foreach( $the_ok as $value )
        $sql_the_count = mysql_query("select count(id) as nbre_entree from `questions` where id_qcm='" . $qcm. "' and id_theme = '" . $the_ok[1]. "'");
        $the_count = mysql_fetch_array($sql_the_count);
        echo "themes n° " . $value . ' : ' . $the_count['nbre_entree'] . ' questions
';        
}

j'obtiens :
themes n° 1 : 6 questions
themes n° 2 : 4 questions
themes n° 3 : 2 questions
themes n° 4 : 2 questions

Or j'aimerai avoir ceci :

themes n° 1 : 6 questions et q : 6
themes n° 2 : 4 questions et q : 10
themes n° 3 : 2 questions et q : 12
themes n° 4 : 2 questions et q : 14

de façon à faire une liste de liens qui passent en GET le numéro du théme et la valeur de q, me renvoyant sur la premiére question de chaque théme
du syle :
[ma_page.php?theme =1&question= 1>mon lien
[ma_page.php?theme =3&question=11>mon lien
je me mélange les pinceaux entre COUNT, SUM, et des while imbriqués les uns dans les autres << foireux...

Merci de votre aide, j'en peux plus....

<gras>

5 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

$iHowMany = 10;
$sql_the_ok = mysql_query("select theme, id from `themes` where id_qcm='" . $qcm. "'");
while ($the_ok = mysql_fetch_array($sql_the_ok))
{
        foreach( $the_ok as $value )
   
    $sql_the_count = mysql_query("select count(id) as nbre_entree from
`questions` where id_qcm='" . $qcm. "' and id_theme = '" . $the_ok[1].
"'");
        $the_count = mysql_fetch_array($sql_the_count);
       $iHowMany += $the_count['nbre_entree'];
        echo "themes n° " . $value . ' : ' . $the_count['nbre_entree'] . ' questions et a : '.$iHowMany.'
';        
}

ceci dit, tu peux raccourcir tout ça hein...SELECT count(q.id) FROM nbre_entree FROM questions q LEFT JOIN themes t ON t.id q.id_theme WHERE id_qcm '$qcm'
Messages postés
19
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
27 juin 2007

Merci pour ta réponse, je test de suite et je reviens..
Messages postés
19
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
27 juin 2007

On progresse, mais il y a un souci sur l'initialisation puisque j'obtiens :

themes n° 1 : 6 questions et a : 16
themes n° 2 : 4 questions et a : 20
themes n° 50 : 0 questions et a : 20
themes n° 51 : 0 questions et a : 20
themes n° 52 : 0 questions et a : 20
themes n° 53 : 0 questions et a : 20
themes n° 54 : 0 questions et a : 20
themes n° 55 : 0 questions et a : 20
themes n° 56 : 2 questions et a : 22
themes n° 57 : 0 questions et a : 22
themes n° 58 : 2 questions et a : 24
themes n° 60 : 0 questions et a : 24
themes n° 61 : 0 questions et a : 24
themes n° 62 : 0 questions et a : 24
themes n° 63 : 0 questions et a : 24
themes n° 64 : 0 questions et a : 24

Or il me faudrait obtenir :

themes n° 1 : 6 questions et a : 1

themes n° 2 : 4 questions et a : 10

themes n° 50 : 0 questions et a : 10

themes n° 51 : 0 questions et a : 10

themes n° 52 : 0 questions et a : 10

themes n° 53 : 0 questions et a : 10

themes n° 54 : 0 questions et a : 10

themes n° 55 : 0 questions et a : 10

themes n° 56 : 2 questions et a : 12

themes n° 57 : 0 questions et a : 12

themes n° 58 : 2 questions et a : 14

themes n° 60 : 0 questions et a : 14

etc..etc...

Nb1 : certains de mes thèmes sont pour l'instant vides..
Nb2 : je n'ai pas encore testé ta requête synthétique avec les alias et le JOIN LEFT, qui m'a l'air bien puissante
Messages postés
19
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
27 juin 2007

Je viens d'essayer ceci :
$sql_the_ok  mysql_query("SELECT count(q.id) as nbre_entree FROM questions q LEFT JOIN themes t ON t.id q.id_theme WHERE id_qcm = '" . $qcm . "'");
$the_ok = mysql_fetch_row($sql_the_ok);
echo $the_ok['nbre_entree'];

et je n'ai aucun résultat....

Ta premiére proposition par contre me renvoit bien ce qu'il y a sur mon post précédent, sans être exactement le résultat escompté..

Une autre idée peut-être
Messages postés
19
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
27 juin 2007

bon...
je dois être bien fatigué, car je n'avais pas vu que tu avais initialisé ta variable $iHowMany à 10

je suis vraiment confus.. ça fonctionne !

Maintenant je n'ai plus qu'à lilster mes champs themes, pour pouvoir afficher mes liens

Merci beaucoup !!!