Calcul de plusieurs moyennes en php / sql

forumeur -  
Dj Nam Messages postés 327 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   41
 
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
forumeur
 
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   Statut Membre Dernière intervention   41
 
Parfait !
N'oublie pas de mettre le sujet en résolu :)
0