1,5 → 1,4 |
<?php |
|
namespace TelaBotanica\Del\Commun; |
|
class Stats { |
9,16 → 8,16 |
// transaction mais la flemme de tout mettre en InnoDB |
$id_image = intval($id_image); |
$id_proto = intval($id_proto); |
if(!$id_image || !$id_proto) throw new Exception("Ne peut mettre à jour les statistiques de vote", |
RestServeur::HTTP_CODE_ERREUR); |
|
if (!$id_image || !$id_proto) throw new Exception("Ne peut mettre à jour les statistiques de vote", |
RestServeur::HTTP_CODE_ERREUR); |
|
// 1) choper tous les votes pour le protocole choisi |
$votes = $db->requeter(sprintf( |
' SELECT ce_image, ce_protocole, valeur, ce_utilisateur'. |
' FROM del_image_vote'. |
' WHERE ce_image = %d AND ce_protocole = %d', |
$id_image, $id_proto)); |
|
' SELECT ce_image, ce_protocole, valeur, ce_utilisateur'. |
' FROM del_image_vote'. |
' WHERE ce_image = %d AND ce_protocole = %d', |
$id_image, $id_proto)); |
|
// 2) calculer la moyenne pondérée, le nombre de points |
// @ACHTUNG_ALARM attention à ce que cette méthode corresponde avec les |
// calculs dans GWT, notamment l'échelle de points !! |
51,13 → 50,15 |
if ($diviseur > 0) { |
$moyennePonderee = $moyennePonderee / $diviseur; |
} |
|
|
// 3) mise à jour de la table stats |
$db->requeter(sprintf( |
' INSERT INTO del_image_stat (ce_image, ce_protocole, moyenne, nb_votes, nb_points)'. |
' VALUES (%d, %d, %s, %d, %d)'. |
' ON DUPLICATE KEY UPDATE moyenne = %s, nb_votes = %d, nb_points = %d', |
$id_image, $id_proto, number_format($moyennePonderee, 3, '.', ''), $nbVotes, $nbPoints, number_format($moyennePonderee, 3, '.', ''), $nbVotes, $nbPoints)); |
|
' INSERT INTO del_image_stat (ce_image, ce_protocole, moyenne, nb_votes, nb_points)'. |
' VALUES (%d, %d, %s, %d, %d)'. |
' ON DUPLICATE KEY UPDATE moyenne = %s, nb_votes = %d, nb_points = %d', |
$id_image, $id_proto, number_format($moyennePonderee, 3, '.', ''), $nbVotes, $nbPoints, |
number_format($moyennePonderee, 3, '.', ''), $nbVotes, $nbPoints)); |
|
} |
} |
} |
?> |