Bonjour,
J'ai une table stages contenant des stages avec leurs dates de début et de fin.
1) Je remplis un tableau ($tab[$n]) avec les stages qui se terminent durant une période choisie par l'utilisateur.
2) J'affiche la moyenne des taux de satisfaction des clients pour chacun de ces stages (et pour chaque question posée (id_question)).
En global cela fonctionne (si je ne filtre pas les stages mais fais les moyennes sur tous les les stages existants) :
Dès que j'essaie de filtrer les stages, je me fais gronder par mySQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT AVG(taux_reponse) as avgTR, AVG(nb_TS) as avgTS, AVG(nb_PS) as avgpS, AVG(nb_PI) as avgPI, AVG(nb_TI) as avgTI, AVG(nb_SO) as avgSO, AVG(moyenne) as avgMY, FROM reponses WHERE reponses.id_question = ".$coef["id_question"]
ou :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT AVG(taux_reponse) as avgTR, AVG(nb_TS) as avgTS, AVG(nb_PS) as avgpS, AVG(nb_PI) as avgPI, AVG(nb_TI) as avgTI, AVG(nb_SO) as avgSO, AVG(moyenne) as avgMY, FROM reponses WHERE reponses.id_question = ".$coef["id_question"] ." AND reponses.id_stage = ".$tab[$n]
- le champ id_stage existe dans ma table reponses et est bien orthographié
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 $reqrep = "SELECT AVG(taux_reponse) as avgTR, AVG(nb_TS) as avgTS, AVG(nb_PS) as avgpS, AVG(nb_PI) as avgPI, AVG(nb_TI) as avgTI, AVG(nb_SO) as avgSO, AVG(moyenne) as avgMY, FROM reponses WHERE reponses.id_question = ".$coef["id_question"]; $resrep = mysql_query($reqrep); while ($rep = mysql_fetch_array($resrep)) { if ($rep["id_stage"]==$tab[$n]) { $worksheet->write($lig, 2, intval($rep["avgTR"]), $cellule); $worksheet->write($lig, 3, intval($rep["avgTS"]), $cellule); $worksheet->write($lig, 4, intval($rep["avgPS"]), $cellule); $worksheet->write($lig, 5, intval($rep["avgPI"]), $cellule); $worksheet->write($lig, 6, intval($rep["avgTI"]), $cellule); $worksheet->write($lig, 7, intval($rep["avgSO"]), $cellule); $worksheet->write($lig, 8, intval($rep["avgMY"]), $cellule); } $n++; } $lig++; }
- $tab[$n] contient bien les valeurs souhaitées
- j'ai essayé de faire 2 requêtes mais je n'ai pas réussi (j'ai pu me tromper sur ce point-là)
NB. Je génère un fichier Excel
Partager