| Line 145... |
Line 145... |
| 145 |
throw new Exception("Impossible de supprimer le vote", RestServeur::HTTP_CODE_ERREUR);
|
145 |
throw new Exception("Impossible de supprimer le vote", RestServeur::HTTP_CODE_ERREUR);
|
| 146 |
} else {
|
146 |
} else {
|
| 147 |
self::updateStats($this->bdd, $ressources[0],$infos_vote['ce_protocole']);
|
147 |
self::updateStats($this->bdd, $ressources[0],$infos_vote['ce_protocole']);
|
| 148 |
}
|
148 |
}
|
| 149 |
}
|
149 |
}
|
| 150 |
|
- |
|
| 151 |
static function updateStats($db, $id_image, $id_proto) {
|
- |
|
| 152 |
$id_image = intval($id_image);
|
- |
|
| 153 |
$id_proto = intval($id_proto);
|
- |
|
| 154 |
if(!$id_image || !$id_proto) throw new Exception("Ne peut mettre à jour les statistiques de vote",
|
- |
|
| 155 |
RestServeur::HTTP_CODE_ERREUR);
|
- |
|
| 156 |
/* REPLACE ... SELECT: réinitalise les champs non-défini (MySQL 5.1)
|
- |
|
| 157 |
REPLACE ... SET a=b, c=d: idem ou plusieurs requête
|
- |
|
| 158 |
Du coup il faut récupérer les données actuelles mais REPLACE ne le permet pas
|
- |
|
| 159 |
(http://dev.mysql.com/doc/refman/5.5/en/replace.html :
|
- |
|
| 160 |
You cannot refer to values from the current row and use them in the new row.)
|
- |
|
| 161 |
D'où INSERT ... ON DUPLICATE KEY UPDATE. Notons que VALUES() récupère la valeur
|
- |
|
| 162 |
*associée* au champ passé en paramètre, c'est à dire VALUES(moyenne) == divo.moyenne */
|
- |
|
| 163 |
$db->requeter(sprintf('INSERT INTO del_image_stat (ce_image, ce_protocole, moyenne, nb_votes)'.
|
- |
|
| 164 |
' SELECT ce_image, ce_protocole, AVG(valeur) AS moyenne, COUNT(valeur) AS nb_votes'.
|
- |
|
| 165 |
' FROM del_image_vote divo'.
|
- |
|
| 166 |
' WHERE ce_image = %d AND ce_protocole = %d GROUP BY ce_image, ce_protocole'.
|
- |
|
| 167 |
' ON DUPLICATE KEY UPDATE moyenne = VALUES(moyenne), nb_votes = VALUES(nb_votes)',
|
- |
|
| 168 |
$id_image, $id_proto));
|
- |
|
| 169 |
|
- |
|
| Line -... |
Line 150... |
| - |
|
150 |
|
| - |
|
151 |
// intermédiaire pour la méthode contenue dans "Commun"
|
| - |
|
152 |
static function updateStats($db, $id_image, $id_proto) {
|
| 170 |
|
153 |
return TelaBotanica\Del\Commun\Stats::updateStats($db, $id_image, $id_proto);
|
| Line 171... |
Line 154... |
| 171 |
}
|
154 |
}
|
| 172 |
|
155 |
|
| 173 |
/*-------------------------------------------------------------------------------
|
156 |
/*-------------------------------------------------------------------------------
|