Notes Moyennes

Eléphant du PHP | 101 Messages

24 sept. 2005, 15:07

pour l'id 1 j'ai mis
total_note = 45
et nb_note = 3

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 sept. 2005, 15:10

je te rappel ta requette sql (si tu ne l'a pas modifié)
"SELECT (total_note/nb_note) as moyenne FROM jeux WHERE id_jeu=3 "
Tu as mis en dur l'id numero 3 !!
Pour faire le test remplace le 3 par 1
:wink:

sinon je te conseille de mettre ça en variable pour avoir le choix de l'affichage d'une certaine moyenne:
"SELECT (total_note/nb_note) as moyenne FROM jeux WHERE id_jeu=".$id
[/quote]

/!\ 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, 15:13

que signifie
.$row['moyenne']

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 sept. 2005, 15:17

que signifie
.$row['moyenne']
Affiche la moyenne de total_note/nb_note.

Dans la requete il est bien définit d'utiliser "moyenne"
SELECT (total_note/nb_note) as 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, 15:19

Pk ca n'affiche rien ?
etc que je dois creer un champ moyenne?
Merci

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 sept. 2005, 15:23

La on tourne en rond, assure toi de mttre des données dans la base ensuite met ce code, il va lister toutes les donnes.
<?php
mysql_connect("sql.free.fr", "mazflo007", "****");
mysql_select_db("mazflo007");

$requete = mysql_query("SELECT (total_note/nb_note) as moyenne FROM jeux") or die (mysql_error());
while ($row=mysql_fetch_array($requete))
{
    echo "la moyenne est: ".$row['moyenne']."\n"; 
} 
php?>
pas besoin de crée de nouveau champ.

/!\ 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, 15:27

Merci ca marche

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 sept. 2005, 15:34

Ah, ouf :D

Mais n'oubli pas que dans ce cas toutes les moyennes seront affichées si tu en veut une précise il faut ajouter la clause WHERE dans la requete.

Bonne continuation.

/!\ 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, 17:46

Encore une petite question quel est le probleme dans ce code

Code : Tout sélectionner

mysql_query("UPDATE jeuxSET total_note=total_note+".$nouvelle_note." WHERE id=".$_GET['id'].""); mysql_query("UPDATE jeux SET nb_note=nb_note+1 WHERE id=".$_GET['id']." " ); } $requete = mysql_query("SELECT (total_note/nb_note) as moyenne FROM jeux WHERE id=".$_GET['id']." ") or die (mysql_error()); while ($row=mysql_fetch_array($requete)) { mysql_query("UPDATE jeux SET moyenne=".$row[moyenne]." WHERE id=".$_GET['id']. "" ); } ?> </body> </html>
Merci

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 sept. 2005, 18:01

Hum...

essai comme ceci:
<?
//Ici tu peut mettre a jour les 2 champs a la fois
$sql_update="UPDATE jeux SET total_note=total_note+".$nouvelle_note." , nb_note=nb_note+1 WHERE id=".$_GET['id'];
mysql_query($sql_update);  

$sql_select="SELECT (total_note/nb_note) as moyenne FROM jeux WHERE id=".$_GET['id'];
$requete = mysql_query($sql_select) or die (mysql_error());

//Pas besoin de boucle étant donné que tu n'aura qu'un seul résultat, avec lma clause WHERE sur l'id 
$row=mysql_fetch_array($requete);
$sql_moy="UPDATE jeux SET moyenne=".$row[moyenne]." WHERE id=".$_GET['id'];
mysql_query($sql_moy);   
   
?> 
Mais je vois que tu as ajouté un champ "moyenne" dans la table tu n'était pas obligé, mais maintenant que c'est fait... :wink:

/!\ 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, 19:02

il y a une erreur
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 sept. 2005, 19:53

Pour quelle requete ?
un oubli ici:
$sql_moy="UPDATE jeux SET moyenne=".$row['moyenne']." WHERE id=".$_GET['id'];
sinon je vois pas trop

/!\ 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, 20:51

Non ca marque pareil

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 sept. 2005, 00:44

Non mais je vais pas pouvoir deviner non plus a quelle ligne cette erreur appartient. :wink:
Il me semble que dans le code que je t'ai montré il n'y a plus d'erreurs, montre ton code tel qu'il maintenant.
Je te conseil a tout hasard de faire afficher les requetes et de les tester dans phpmyadmin, par exemple. (-> echo $sql_update; pareil pour les autres)
Je suis sur que tu va meme trouver tout seul :wink:

/!\ 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

25 sept. 2005, 06:37

peut ton faire

Code : Tout sélectionner

$_GET['id'] = $id
Et donc mettre

Code : Tout sélectionner

WHERE id=$id;