Page 1 sur 6

Notes Moyennes

Posté : 22 sept. 2005, 19:34
par mazflo007
Bonjour j'ai dans mon site plusieurs dizaines de jeux repertorier dans une table et il a un champ note ou j'aimerais que mes visiteurs notes et que ca fasse la moyenne des notes pour tous les jeux
Pouvez-maider svp

Posté : 22 sept. 2005, 19:41
par ouckileou
Il te faudrait stocker chaque note, et diviser donc par le nombre stocké

Tu pourrais faire une table externe

Code : Tout sélectionner

Jeux ---- id_jeu nom_jeu description Notes ------ id_note id_jeu note
Avec ce système tu pourrais récupérer la moyenne d'un jeu comme ça :

Code : Tout sélectionner

SELECT nom_jeu, AVG(note) AS moyenne FROM notes n INNER JOIN jeux j ON n.id_jeu = j.id_jeu GROUP BY id_jeu
Mais si tu stockes déjà les notes, dis nous comment que l'on puisse t'aider

Posté : 23 sept. 2005, 19:15
par mazflo007
Est-il possible de mettre plusieurs note dans un champ et de calculer leur moyenne merci

Posté : 23 sept. 2005, 21:36
par rami
C'est possible mais pas du tout recommandé. La théorie relationnelle veut qu'à un champ ne corresponde qu'une information!

Posté : 23 sept. 2005, 22:18
par zeus
Il existe une bidouille plus simple qui évite de créer une seconde table :
dans ta table "jeu", tu ajoute un champ "total_note" et un champ "nb_note".
Dès que quelqu'un donne une note, tu l'ajoute à la valeur du champ "tital_note" et tu incrémente le champ "nb_note" de 1.

Lorsque que tu veux afficher la note, tu fait total_note/nb_note et tu as la moyenne

Code : Tout sélectionner

Jeux ---- id_jeu nom_jeu description total_note nb_note
requetes pour ajouter une note
"UPDATE jeu SET total_note=total_note+".$nouvelle_note." WHERE id_jeu=".$id_jeu;
"UPDATE jeu SET nb_note=nb_note+1 WHERE id_jeu=".$id_jeu;
requete pour afficher la moyenne
"SELECT (total_note/nb_note) as moyenne FROM jeu WHERE id_jeu=".$id_jeu

Posté : 24 sept. 2005, 06:47
par mazflo007
Ah oui merci fallait y penser

Posté : 24 sept. 2005, 08:36
par mazflo007
Voila j'ai essaye ce code mais ca marche pas
<?php
mysql_connect("sql.free.fr", "mazflo007", "****");
mysql_select_db("mazflo007");

$requete = mysql_query(""SELECT (total_note/nb_note) as moyenne FROM jeux WHERE id_jeu="3") or die (mysql_error()); 

echo $requete; 
php?>
Voici l'erreur
Parse error: parse error, unexpected T_STRING
Pk ne marche t'il pas merci

Posté : 24 sept. 2005, 09:22
par pjl
regarde dont tes guillemets.

Posté : 24 sept. 2005, 13:19
par mazflo007
Merci J'ai fait ça
<?php 
mysql_connect("sql.free.fr", "mazflo007", "****"); 
mysql_select_db("mazflo007"); 

$requete = mysql_query(""SELECT (total_note/nb_note) as moyenne FROM jeux WHERE id_jeu=3 ") or die (mysql_error()); 

echo $requete; 
php?> 
Mais ca me marque
Resource id #2

Posté : 24 sept. 2005, 13:31
par mazflo007
pk

Posté : 24 sept. 2005, 13:32
par Truc
Salut, est tu sur que la requete fonctionne bien -> Les guillemets en bédut de requete !!

sinon une fois la requete executée par mysql_query faut lire les donnée avec par exemple:
while ($row=mysql_fetch_array($requete))
{
    echo "la myenne est: ".$row['moyenne'];
}

Posté : 24 sept. 2005, 13:40
par mazflo007
Salut Voici ce que donne le code
<?php 
mysql_connect("sql.free.fr", "mazflo007", "****"); 
mysql_select_db("mazflo007"); 

$requete = mysql_query("SELECT (total_note/nb_note) as moyenne FROM jeux WHERE id_jeu=3 ") or die (mysql_error()); 

while ($row=mysql_fetch_array($requete)) 
{ 
    echo "la moyenne est: ".$row[moyenne];  
php?> 
Je lé essayer mais ca marque
Parse error: parse error, unexpected $ in /var/www/free.fr/b/d/mazflo007/essai.php on line 14

Posté : 24 sept. 2005, 13:55
par Truc
je vois pas trop la ligne 14 comme ça mais bon il y a 2 erreurs deja:
1. Oubli de mettre des ' ' dans l'affichage de la valeur $row['
2.une } en fin de while
<?
while ($row=mysql_fetch_array($requete))
{
    echo "la moyenne est: ".$row['moyenne']; 
} 
php?>

Posté : 24 sept. 2005, 14:10
par mazflo007
ca affiche
la moyenne est :

Et c'est tout
Je ne comprends pas pk

Posté : 24 sept. 2005, 14:18
par Truc
As tu remplis ta base avec des notes ?