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) :
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"]
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"] ." AND reponses.id_stage = ".$tab[$n]
ou :
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++;
}
- le champ id_stage existe dans ma table reponses et est bien orthographié
- $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