recuperation et operation pour faire une moyenne. [PHP] [mySQL] - Programmation
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]
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
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
Marsh Posté le 28-08-2001 à 17:41:04
ma faute, ca s'utilise pas comme ca, il faut l'utiliser avec GROUP BY
Marsh Posté le 28-08-2001 à 17:43:36
tu peux me marqué la ligne de commande, parce que la, je suis perdu ?
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
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]
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.
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.
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]
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.
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
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.
Marsh Posté le 28-08-2001 à 18:54:59
ben rien du tout, ca me met deux petit point ca en fait ":"
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.
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 ?
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 :
|
pour ta requete, tu auras 75 ((50+100)/2) pour A et 100 pour B
Marsh Posté le 28-08-2001 à 23:45:14
et comment faire pour avoir le resultat que g dit au dessus ?
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.
Marsh Posté le 29-08-2001 à 09:37:45
Ben remet ta clause WHERE du début de topic entre FROM et GROUP BY
Marsh Posté le 29-08-2001 à 09:44:27
Erf, chui vraiment trop c** des fois
Merci bcp a vous pour votre aide
Marsh Posté le 29-08-2001 à 09:50:23
ReplyMarsh 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.
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+
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]