Additioner les résulats d'un COUNT

Résolu
jacky quartz Messages postés 19 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 27 juin 2007 - 27 juin 2007 à 17:39
jacky quartz Messages postés 19 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 27 juin 2007 - 27 juin 2007 à 20:16
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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
27 juin 2007 à 18:12
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'
3
jacky quartz Messages postés 19 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 27 juin 2007
27 juin 2007 à 18:55
Merci pour ta réponse, je test de suite et je reviens..
0
jacky quartz Messages postés 19 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 27 juin 2007
27 juin 2007 à 19:03
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
0
jacky quartz Messages postés 19 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 27 juin 2007
27 juin 2007 à 20:08
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jacky quartz Messages postés 19 Date d'inscription dimanche 12 novembre 2000 Statut Membre Dernière intervention 27 juin 2007
27 juin 2007 à 20:16
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 !!!
0