[PHP] [mySQL] recuperation et operation pour faire une moyenne.

recuperation et operation pour faire une moyenne. [PHP] [mySQL] - Programmation

Marsh Posté le 28-08-2001 à 16:06:36    

Voila, je voudrai faire une sorte de sondage.
 
Pour ce faire g un page qui s'affiche avec ds un formulaire des notes de 1 a 5.
c note sont envoyé a la base de donné mySQL (ainsi que le nom de l'image).
pas de pb jusque la.
Maintenant, je voudrai resupéré le resultat sous forme de moyenne.
 
comment faire pour recupéré les resultat, et surtout faire l'operation pour avoir le resultat sous forme de moyenne ?
 
Je pense qu'il faut que je commence par ca :
 
$resultat_sql = mysql_query("select * from ****** where image='$image'",$connexion);
 
mais pour la suite, je sais pas.

 

[edtdd]--Message édité par FrCo--[/edtdd]

Reply

Marsh Posté le 28-08-2001 à 16:06:36   

Reply

Marsh Posté le 28-08-2001 à 16:45:04    

non non
 
SELECT avg(variable_dont_la_moyenne_doit_etre_calculée) FROM ****** where image='$image'",$connexion
 
Et tu as direct le resultat

 

[edtdd]--Message édité par gizmo--[/edtdd]

Reply

Marsh Posté le 28-08-2001 à 17:35:23    

oki, g fait ca, mais g ca comme message d'erreur :
 
Something is wrong in your syntax près de ') FROM vote where image='brainstorming/Franck_03_August_2001_15_' à la ligne 1.
 
et ma ligne de requete est comme ca :
 
$resultat = mysql_query("SELECT avg($vote) FROM vote where image='$image'",$connexion) or die (mysql_error());
echo "$resultat";
 
je vois pas l'erreur :(

Reply

Marsh Posté le 28-08-2001 à 17:38:51    

bon, la g mi ('$vote')
 
et maintenant il me marque, Resource id #2.
 
Au secourrrrrrrrrrrr, je suis perdu, comment je fait pour qu'il m'affice le resultat ? pliiiiiiiiiiize

Reply

Marsh Posté le 28-08-2001 à 17:41:04    

ma faute, ca s'utilise pas comme ca, il faut l'utiliser avec GROUP BY

Reply

Marsh Posté le 28-08-2001 à 17:43:36    

tu peux me marqué la ligne de commande, parce que la, je suis perdu ?  :(

Reply

Marsh Posté le 28-08-2001 à 17:45:08    

dit moi ce que tu veux exactement et les données de ta table et j'essaye de te la construire

Reply

Marsh Posté le 28-08-2001 à 17:50:31    

Ben ds ma base XXXXXX, g une table qui s'appelle vote, qui contient une colonne image et une colonne vote.
 
Image correspond au nom de l'image (ce qui me permet de rapellé le vote sur la bonne image)
 
Vote contient la note.
 
Je voudrai faire affichier la moyenne des Votes attribué a Image.

 

[edtdd]--Message édité par FrCo--[/edtdd]

Reply

Marsh Posté le 28-08-2001 à 17:52:34    

ok, alors SELECT avg(vote) FROM XXXX GROUP BY image
 
et tu auras toutes les moyennes des images.

Reply

Marsh Posté le 28-08-2001 à 17:57:35    

Il me marque tjrs ca : Resource id #2

Reply

Marsh Posté le 28-08-2001 à 17:57:35   

Reply

Marsh Posté le 28-08-2001 à 17:59:15    

montre moi ce que tu en fais après, j'ai l'impression que tu ne t'en sert pas correctement.

Reply

Marsh Posté le 28-08-2001 à 18:01:16    

ben apres, je fait ca :
echo "$resultat";
 
j'oublie peut etre qque chose, ca fait pas longtps que j'en fait du php, alors je capte pas encore tout.

 

[edtdd]--Message édité par FrCo--[/edtdd]

Reply

Marsh Posté le 28-08-2001 à 18:27:35    

en effet, tu oublies qqch.
 
essaie ca:
while($list=mysql_fetch_array($resultat))
{
  echo "$list[image]: $list[vote]\n";
}
 
mais je ne sais plus si le paramètre image va s'afficher.

Reply

Marsh Posté le 28-08-2001 à 18:44:49    

Tien puisque tru es la, tu peux me dire si il y a une erreur sur ca :
 
if ( $send=="send" )
{
$ajout_sql = mysql_query("insert into $table_vote (image, vote) values ('$image', '$vote')",$connexion) or die (mysql_error());
}
 
parce qu'il me marqque :  
Something is wrong in your syntax près de '(image, vote) values ('brainstorming/Franck_03_August_2001_15_11' à la ligne 1

Reply

Marsh Posté le 28-08-2001 à 18:49:27    

c bon pour l'erreur precedante,  
par contre, pour l'affichage de la moyenne, ca marche pas. :(

Reply

Marsh Posté le 28-08-2001 à 18:52:51    

ca marque quoi pour la moyenne?

Reply

Marsh Posté le 28-08-2001 à 18:54:59    

ben rien du tout, ca me met deux petit point ca en fait ":"

Reply

Marsh Posté le 28-08-2001 à 19:24:00    

bon alors remplace par ceci
 
while($list=mysql_fetch_row($resultat))  
{  
 echo "$list[0]: $list[1]\n";  
}  
 
les noms ont peut-être changé mais comme il ne marque pas de message d'erreur les résultats sont bien la.

Reply

Marsh Posté le 28-08-2001 à 23:24:07    

pour cette histoire de sondages
 
si g bien compris
genre cette table
 
id | mètres | montagne
1     50        x1
2     100       x2
3     50        x3
 
si je fais
select avg(metres) from table group by montagne
je v récupérer en sortie
 
66% à 50 mètres
et 33% a 100 mètres, c ca ?


---------------
Venez participer au forum de Maxiservices.net
Reply

Marsh Posté le 28-08-2001 à 23:32:46    

non, ce que tu récupère en sortie ce sont les moyennes de la valeur metre par catégorie de montagne donc si tu as
 

Code :
  1. id | metre | Montagne
  2. 1 |   50  |    A
  3. 2 |  100  |    B
  4. 3 |  100  |    A


 
pour ta requete, tu auras 75 ((50+100)/2) pour A et 100 pour B

Reply

Marsh Posté le 28-08-2001 à 23:45:14    

et comment faire pour avoir le resultat que g dit au dessus ?


---------------
Venez participer au forum de Maxiservices.net
Reply

Marsh Posté le 29-08-2001 à 09:09:07    

me revoila.
Alors en fait c ca qu'il faut ecrire :
 
$resultat = mysql_query("SELECT avg(vote) as moy,image FROM vote GROUP BY image",$connexion)
 
par contre le pb, c que je voudrai qu'il m'affiche le resultat concernant uniquement l'image concerné.
 
imaginons ca
 
id|image|note
1 |img01|  5
2 |img02|  2
3 |img01|  1
4 |img01|  4
 
les images sont affiché sur un thumbnail, et je voudrai que le resultat concernant le vote s'affiche uniquement ds le tableau ou l'image 01 est affiché en grand.
 
j'espere que vous aurez comprie ce que je veux .
Sinon, le resultat est le bon.

Reply

Marsh Posté le 29-08-2001 à 09:37:45    

Ben remet ta clause WHERE du début de topic entre FROM et GROUP BY

Reply

Marsh Posté le 29-08-2001 à 09:44:27    

Erf, chui vraiment trop c** des fois  :D  
 
Merci bcp a vous pour votre aide :)

Reply

Marsh Posté le 29-08-2001 à 09:50:23    

et pour moi, vous savez ?


---------------
Venez participer au forum de Maxiservices.net
Reply

Marsh Posté le 29-08-2001 à 21:00:58    

GhzMsnet a écrit a écrit :

et pour moi, vous savez ?  




je suis pas sur qu'il existe une méthode propore pour fair ce que tu veux avec les donnée que tu donnes. Peut-etre en combinant count et group by, mais la de suite, je vois pas.

Reply

Marsh Posté le 31-08-2001 à 21:09:19    

>GhzMsnet: la syntaxe sous Access donnerait ce qui suit:
 
SELECT Count(Table1.id) AS nb, Sum(IIf([metre]=50,1,0)) AS SOMETRE50, Sum(IIf([metre]=100,1,0)) AS SOMETRE100, [SOMETRE50]/[nb] AS MOY50, [SOMETRE100]/[nb] AS MOY100
FROM Table1;
 
Pour l'adapter à mySQL, ben ça paraît plus compliqué (faut dire que Access est très libre sur la syntaxe SQL -> aucun GROUP BY avec Sum() et Count() dans cette requete !!), mais c'est pê possible.
 
A+
 
 
A+

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed