calculer % php Mysql

calculer % php Mysql - PHP - Programmation

Marsh Posté le 22-09-2009 à 13:48:03    

Hello les amis,
 
Je bosse actuellement sur un projet d'enquête en ligne et j'ai besoin d'aide.
Voici ma question:
J'affiche en PHP sur des pages dynamiques les résultats d'un questionnaire en ligne fait sur limesurvey, chaque page correspond à une enquête, jusqu'ici pas de problème.
Les réponses aux questions de l'enquête sont excellent,bon,acceptable,a revoir.
 
Exemple:
Question 1:
Le magasin est propre?  excellent
Question 2:
Le magasin est bien décoré? acceptable
Question 3:
Le magasin est bien situé? excellent
 
Je dois calculer le taux de satisfaction de chaque enquête, pour cela je dois faire le calcul suivant:
(100%*réponsesexcellentes+65%*réponsesbon+50%*réponsesacceptables+1%*réponsesarevoir) / total des réponses.
Donc pour notre exemple:
(100%*2+65%*0+50%*1+1%*0) / 3
 
Je ne sais pas si cela est possible en PHP, j'essaye de le faire en MYSQL mais je cale également.
Pouvez-vous me conseiller?
 
Merci pour votre aide

Reply

Marsh Posté le 22-09-2009 à 13:48:03   

Reply

Marsh Posté le 22-09-2009 à 14:16:15    

http://dev.mysql.com/doc/refman/5. [...] tions.html  
regard du coté de case ... when


---------------

Reply

Marsh Posté le 22-09-2009 à 14:35:19    

J'ai fait un truc comme ça, ça marche pour une question seulement:
R1=excellent,R2=bon......
 
select nom_boutique, sum(conversion_champ_vers_nombreR1) as total_R1,  
sum(conversion_champ_vers_nombreR2) as total_R2,  
sum(conversion_champ_vers_nombreR3) as total_R3,  
sum(conversion_champ_vers_nombreR4) as total_R4 from  
(
select 45784X6X15 as nom_boutique,
 IF(question1="R1", 1, 0) as conversion_champ_vers_nombreR1,  
IF(question1="R2", 1, 0) as conversion_champ_vers_nombreR2,  
IF(question1="R3", 1, 0) as conversion_champ_vers_nombreR3,
IF(question1="R4", 1, 0) as conversion_champ_vers_nombreR4  
 from lime_survey_45784
 )as subtemptable3
 group by nom_boutique
 
le résultat est le suivant  
nom_boutique  total_R1  total_R2  total_R3  total_R4
boutique Bastille  1                0        0     0
boutique Opéra  0                1        0     0
 
Comment faire pour additionner l'ensemble des questions?

Reply

Marsh Posté le 24-09-2009 à 10:54:07    

select 45784X6X15 as nom_boutique,
 sum(IF(question1="R1", 1, 0))  as total_R1,  
 sum(IF(question1="R2", 1, 0)) as total_R2,  
 sum(IF(question1="R3", 1, 0)) as total_R3,
 sum(IF(question1="R4", 1, 0)) as total_R4 ,
 sum(1) as total ,
 sum(CASE question1 WHEN "R1" THEN 1 WHEN "R2" THEN 0.65 WHEN "R3" THEN 0.50 WHEN "R4" THEN 0.01 END) as total_satisfaction
 from lime_survey_45784
 group by nom_boutique  
 
devrait faire le boulot
 
Il faut juste afficher total_satisfaction / total pour avoir le taux attendu.
 
Il y a surement moyen de faire quelque chose de plus propre, mais impossible de me souvenir de ce qu'il est possible ou non de faire pour réutiliser des valeurs calculées dans la requete.


Message édité par proy le 24-09-2009 à 11:09:33
Reply

Sujets relatifs:

Leave a Replay

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