Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1597 → Rev 1598

/trunk/commun/Stats.php
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));
 
}
}
}
?>