Calcul de plusieurs moyennes en php / sql

Fermé
forumeur - 27 sept. 2012 à 14:27
Dj Nam Messages postés 327 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 31 janvier 2014 - 13 oct. 2012 à 11:07
Bonjour,

J'ai plusieurs commentaires appartenant à différentes news et chaque commentaire donne une note. Je cherche à calculer la note moyenne de chaque news. Là où j'en suis, je n'obtiens que la moyenne totale.

Ce que je souhaiterais ensuite, c'est que le résultat s'affiche sur des pages différentes, exemple : Note moyenne de la news 1 sur la page "../comments/moyenne.php?id=1, Note moyenne de la news 2 sur la page "../comments/moyenne.php?id=2

J'ai cherché sur le net, mais je n'ai pas trouvé d'exemples de ce cas de figure.

Voilà où j'en suis :

<?
$sql3=mysql_query("SELECT COUNT(*) AS nb_note FROM comments WHERE note <> 0") or die("Problème de notation !!!");;
$donnees3=mysql_fetch_array($sql3);
$nb_noter = $donnees3['nb_note'];

$temp=0;
$query7="SELECT note FROM comments WHERE note <> 0";
$result7=mysql_query($query7) or die("Query7 failed");
while($val=mysql_fetch_array($result7))
{
	$note = $val["note"];
	$temp += $note;
}

if ($nb_noter != 0)
{
	$moyenne = round($temp / $nb_noter,2);
}
else
{
	$moyenne = 0;
}

if ($nb_pages == 0)
{
	$nb_pages =1;
}
?>



<?
	echo ''.$nb_msg.' Note moyenne du site : '.$moyenne.'/5';
?>
A voir également:

3 réponses

Dj Nam Messages postés 327 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 31 janvier 2014 41
13 oct. 2012 à 08:32
Bonjour,

Je n'ai regardé que la première ligne de ton code pour le moment et déjà, attention, il y a deux ; à la fin.
Pour faire une moyenne en SQL il existe la fonction AVG()
$sql3=mysql_query("SELECT id_actu, AVG(*) AS moyenne FROM comments WHERE note != 0 GROU BY id_news") or die("Problème de notation !!!");

En supposant que id_news correspond au champs contenant l'ID de l'actualité concernée.

Ce resultat devrait te retourner directement un resultat par actu avec directement la moyenne. Il ne te reste donc qu'à boucler là-dessus comme ceci :
while ($actu  = mysql_fetch_assoc($sql3)) {
    echo "Actualté ".$actu['id_actu']." : La moyenne est de ".$actu['moyenne']."<br />";
}



A toi de jouer !
0
Salut DJ Nam, merci pour ton aide.

En effet, j'ai réussi à calculer mes moyennes grace à la fonction AVG.
0
Dj Nam Messages postés 327 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 31 janvier 2014 41
13 oct. 2012 à 11:07
Parfait !
N'oublie pas de mettre le sujet en résolu :)
0