|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
Bonjours, je n'ai pas beaucou utlilisé MYSQL dans ma vie et je cherche a faire un truc assez spécifique. Un espece de mini sondage.
Il s'agit d'un espece de minijeux qui calcule la vitesse de perception moyenne des gens en fonction de l'Age. voici donc ce que je recherche a faire. Pour le moment je suis capable d'envoyer des valeurs vers ma base mysql a partir de flash. j'envoi donc vitesse1 vitesse 2 vitesse 3... ect , j'envois aussi une valeur d'age et j'aimerais aussi envoyer une valeur de sexe. Le problème c'est que j'aimerais regroupper toutes ses valeurs et en faire plusieurs statistiques mais je ne sais simplement pas comment. 1er stat : Moyenne de toutes les vitesses de toutes les personnes 2e stats : moyenne de chaques vitesse individuelle de tout le monde 3e stats : moyenne de toutes les vitesses par tranches d'Age 4e stats : moyenne de chaques vitesses par tranche d'age. ect... pourriez vous m'aider donc a afficher cela en PHP? j'ai trouvé comment faire la moyenne totalle d'une colone donc je suis capable de trouver la moyenne d'age totale mais pour le reste je m'avoue un peu perdu. merci! |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Comment est (sont) ta (tes) table(s) ?
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
ma table se nomme pour le moment 'valeurs'. elle est composée des éléments suivant:
age en int sexe en Char resultat1 en float resultat2 en float resultat3 en float ainsi de suite... |
|
|
00
|
|
|
#4 | |||||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
bon, c'est pas top du tout comme modélisation. Prenons l'exemple le + simple :
Citation:
si tes 10 résultats sont toujours renseignés, ça donne : Code :
Code :
|
|||||
|
|
00
|
|
|
#5 | ||||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
La bonne modélisation consiste à séparer en deux tables :
Code :
La requête des moyennes individuelles est alors bcp plus simple à écrire : Code :
|
||||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
je crois comprendre un peu mieu mais la question que je me pose c'est comment je fais pour mettre une tranche d'age? par exemple de 1 a 20 ans, 21 a 40 ect ... ?
|
|
|
00
|
|
|
#7 | ||||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
C'est effectivement la seconde question. Tu as deux solutions :
1/ soit tes tranches sont régulières et mathématiquement calculables ; par exemple tranche 0 : de 0 à 19, tranche 1 : de 20 à 39, etc. Tu peux utiliser DIV pour faire une division entière (5 DIV 2 = 2). Code :
2/ soit tes tranches sont irrégulières, par ex 0-18, 19-25, 26-50, etc. Dans ce cas, tu crées une table Tranches(NomTranche, Mini, Maxi), que tu exploites avec une jointure BETWEEN : Code :
|
||||
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
donc si je comprend bien, comme je n'utilise pas de nom (test annonyme) et que chaque personne fait le test et que cela me donne donc 10 résultats, je doit donc faire une seconde table qui determine les tranches d'ages comme ceci:
nomtranche,min,max; ex: de 10 à 20, 10,20 ; ensuite pour le code mysql Code :
merci beaucoup de ton aide en passant j'en apprend beaucoup et c'est super interessant. |
||
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Mon IDpersonne, c'est ton num (mais je ne savais pas comment il s'appelait).
Si tu n'as pas de nom, c'est pas grave, tu peux utiliser le num à la place. Pour les moyennes globales... c'est une moyenne des notes ou des personnes ? autrement dit, si une personne a 3 notes et une autre 6, comment tu pondères ? |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
heu en fait le test que je fais faire est composé de 10 questions qui ont des réponses en float. donc chaques personne ont 10 réultats qui les suivent ca fait donc
num,age,sexe,reponse1,reponse2,reponse3,reponse4,..., la moyenne que je cherche a faire c'est une moyenne premierement de toutes les réponses sur tout les participant, ensuite une moyenne de chacunes des réponses sur tout les participant et finalement une moyenne de chacunes des réponses selon des tranches d'age et de sexe. cela répond il a la question? |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
ça dépend... c'est la question que je posais dans les premiers posts : les participants répondent-ils toujours aux dix questions ?
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
oui toujours car c'Est un test de perception, les utilisateurs doivent appuyer sur une image lorsqu'ils trouvent la différence et cela calcule la vitesse de perception. et il y a 10 images a faire absolument.
|
|
|
00
|
|
|
#13 | |||||||||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Citation:
Code :
Citation:
Code :
Citation:
Code :
|
|||||||||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
okay im impressed!
![]() jai pas acces au serveur temporairement mais je vais tester ca dès qu'il est back on the rails. Merci! |
|
|
00
|
|
|
#15 | ||||
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
bon pour les deux premiers ca me donne donc :
Code :
Code :
mais pour le dernier je vois pas ce que je dois faire en PHP pour l'Appliquer et surtout ce que je dois ''caller'' pour que ca s'affiche dans un echo. l'idée c'est que j'ai toutes sortes d'age dans ma table maintenant genre 21 ans, 32 ans, un autre de 20 ans et je veux juste regrouper les résultats exactement comme plus haut sauf par tranches, 1 a 20 ans 21 a 40 ans ect.. et ensuite faire la meme chose sauf pour le sexe de la personne, 0 ou 1 pour le sexe. Merci beaucoup |
||||
|
|
00
|
|
|
#16 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Donc en fait, tu as une requête pour les tranches d'âges et une requêtes pour les sexes ? j'avais fait les combinaisons tranches/sexe en fait.
Il n'y a rien de spécial à "caller", ce sont des requêtes que tu passes comme les précédentes. Code :
|
||
|
|
00
|
|
|
#17 | ||||||
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
okay mais la question que je me pose c'est en php, comment je ne comprend pas comment le Group BY fonctionne. par exemple:
Code :
Code :
pour les ages c'est pareil. Le gens ont inscrit leurs ages genre 22 ans , 23 ans.. 45 ans.. dans le dernier code je ne comprend simplement pas comment on peu dire en php, ceci c'Est de tel a tel age et cela de tel a tel age. J'ai tenté de l'integré comme les autres mais il me sors une erreur de fetch array .. Code :
J'imagine que le tout est une question de boucle while mais je ne saurais le certifier merci |
||||||
|
|
00
|
|
|
#18 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Si tu veux seulement les femmes, tu n'utilises pas de GROUP BY mais un WHERE :
Code :
|
||
|
|
00
|
|
|
#19 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
donc jpeu faire le meme truc mais our les ages? ya tu un systeme between?
par exemple: WHERE age = between (1,20); enfin c'est comme ca que je vois ca mais en existe t'il un? pour l'erreur de fetch array: Code :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\Perception\retrieve.php on line 37 mais tout les autres fonctionne genre la moyenne de tout tout tou, et la moyenne de chacune de colonnes/réponse |
||
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 27 ![]() |
j'ai trouvé la solution pour le sexe..
Code :
$result_bysexF = mysql_query("SELECT AVG(t1) AS Moy_Rep1, AVG(t2) AS Moy_Rep2, AVG(t3) AS Moy_Rep3, AVG(t4) AS Moy_Rep4, AVG(t5) AS Moy_Rep5, AVG(t6) AS Moy_Rep6, AVG(t7) AS Moy_Rep7, AVG(t8) AS Moy_Rep8, AVG(t9) AS Moy_Rep9, AVG(t10) AS Moy_Rep10 FROM perceptioncomposition1 WHERE sexe = '0' "); pour une raison que j'ignore il falait pas qui select SEXE au debut o_O me reste a trouver pour l'age... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com