Subversion Repositories eFlore/Applications.del

Rev

Rev 1567 | Rev 1582 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1567 Rev 1572
Line 12... Line 12...
12
		if(!$id_image || !$id_proto) throw new Exception("Ne peut mettre à jour les statistiques de vote",
12
		if(!$id_image || !$id_proto) throw new Exception("Ne peut mettre à jour les statistiques de vote",
13
				RestServeur::HTTP_CODE_ERREUR);
13
				RestServeur::HTTP_CODE_ERREUR);
Line 14... Line 14...
14
	
14
	
15
		// 1) choper tous les votes pour le protocole choisi
15
		// 1) choper tous les votes pour le protocole choisi
16
		$votes = $db->requeter(sprintf(
16
		$votes = $db->requeter(sprintf(
17
				' SELECT ce_image, ce_protocole, valeur'.
17
				' SELECT ce_image, ce_protocole, valeur, ce_utilisateur'.
18
				' FROM del_image_vote'.
18
				' FROM del_image_vote'.
19
				' WHERE ce_image = %d AND ce_protocole = %d',
19
				' WHERE ce_image = %d AND ce_protocole = %d',
Line 20... Line 20...
20
				$id_image, $id_proto));
20
				$id_image, $id_proto));
Line 24... Line 24...
24
		// calculs dans GWT, notamment l'échelle de points !!
24
		// calculs dans GWT, notamment l'échelle de points !!
25
		$nbPoints = 0;
25
		$nbPoints = 0;
26
		$nbVotes = 0;
26
		$nbVotes = 0;
27
		$echelle = array(-1, 0, 1, 4, 20);
27
		$echelle = array(-1, 0, 1, 4, 20);
28
		$notesParOccurrences = array();
28
		$notesParOccurrences = array();
-
 
29
		$utilisateurs = array();
29
		foreach ($votes as $vote) {
30
		foreach ($votes as $vote) {
-
 
31
			if (! in_array($vote['ce_utilisateur'], $utilisateurs)) {
-
 
32
				// un seul vote par utilisateur sur un protocole donné !!
-
 
33
				$utilisateurs[] = $vote['ce_utilisateur'];
30
			$note = $vote['valeur'];
34
				$note = $vote['valeur'];
31
			$nbPoints += $echelle[$note - 1];
35
				$nbPoints += $echelle[$note - 1];
32
			if (array_key_exists($note, $notesParOccurrences)) {
36
				if (array_key_exists($note, $notesParOccurrences)) {
33
				$notesParOccurrences[$note]++;
37
					$notesParOccurrences[$note]++;
34
			} else {
38
				} else {
35
				$notesParOccurrences[$note] = 1;
39
					$notesParOccurrences[$note] = 1;
-
 
40
				}
-
 
41
				$nbVotes++;
36
			}
42
			}
37
			$nbVotes++;
-
 
38
		}
43
		}
39
		$moyennePonderee = 0;
44
		$moyennePonderee = 0;
40
		$diviseur = 0;
45
		$diviseur = 0;
41
		foreach ($notesParOccurrences as $n => $o) {
46
		foreach ($notesParOccurrences as $n => $o) {
42
			$moyennePonderee += ($n * $o * $o);
47
			$moyennePonderee += ($n * $o * $o);