Notes Moyennes

Eléphant du PHP | 101 Messages

22 sept. 2005, 19:34

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

22 sept. 2005, 19:41

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

Eléphant du PHP | 101 Messages

23 sept. 2005, 19:15

Est-il possible de mettre plusieurs note dans un champ et de calculer leur moyenne merci

Mammouth du PHP | 983 Messages

23 sept. 2005, 21:36

C'est possible mais pas du tout recommandé. La théorie relationnelle veut qu'à un champ ne corresponde qu'une information!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 sept. 2005, 22:18

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 101 Messages

24 sept. 2005, 06:47

Ah oui merci fallait y penser

Eléphant du PHP | 101 Messages

24 sept. 2005, 08:36

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

ViPHP
pjl
ViPHP | 2119 Messages

24 sept. 2005, 09:22

regarde dont tes guillemets.

Eléphant du PHP | 101 Messages

24 sept. 2005, 13:19

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

Eléphant du PHP | 101 Messages

24 sept. 2005, 13:31

pk

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 sept. 2005, 13:32

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'];
}

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 101 Messages

24 sept. 2005, 13:40

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 sept. 2005, 13:55

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?>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 101 Messages

24 sept. 2005, 14:10

ca affiche
la moyenne est :

Et c'est tout
Je ne comprends pas pk

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 sept. 2005, 14:18

As tu remplis ta base avec des notes ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute