Résultats d'un quizz

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Résultats d'un quizz

par fred9999 » 09 oct. 2008, 14:06

c'est sur si tu n'as pas besoin du détails de tes participants autant incrémenter tes champs
puis de comparer leurs valeurs.

par jojolapine » 09 oct. 2008, 14:03

Euh si ta table est bien faite...

Code : Tout sélectionner

SELECT count(reponseA) as nbA, count(reponseB) as nbB, count(reponseC) as nbC FROM tatable WHERE question=1
Et ensuite tu as trois valeur a comparer, c'est déjà plus simple...

par kek » 09 oct. 2008, 13:57

les réponses sont pas concaténées non, il y a un champ pour chaque réponse

du style :
Q1_1 / Q1_2 / Q1_3
Q2_1 / Q2_2 / Q2_3

etc


mais merci pour ton code ! je pensais qu'il y avait un moyen simple, mais en fait il vaut mieux incrément chaque valeur dès qu'elle est présente dans la base..
je vais tester ça :)

par fred9999 » 09 oct. 2008, 13:23

comment se présente ta bdd?

si les réponses sont concaténées genre (a,b,c) dans ta table apparamment il va falloir les exploser.
<?php
//connexion à la base

$host = "localhost";
$user = "root";
$pass = "";
$bdd = "mabase";
mysql_connect($host, $user, $pass) or die("Impossible de se connecter à la base de données");
mysql_select_db($bdd) or die("Impossible de se connecter à la base de données");


//ma requete
$sql="select * from matable";
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 

//initialisation du compteur
$count=array();
$count[0]= array(0,0,0,0,0,0,0,0,0,0);
$count[1]= array("A","B","C","D","E","F","G","H","I","J");

décompte des questionnaires
while($row=mysql_fetch_row($result))
{
$val  =$row[1];
$tab = explode(",", $val); // si ta val contenue dans le champ reponse est A,C,B
$i=0
	while $i<3
	{
		if$tab[$i]="A"
		{
		$count[0][0]=$count[0][0]+1;
		}
		if$tab[$i]="B"
		{
		$count[0][1]=$count[0][1]+1;
		}
		if$tab[$i]="C"
		{
		$count[0][2]=$count[0][2]+1;
		}
		if$tab[$i]="D"
		{
		$count[0][3]=$count[0][3]+1;
		}
		if$tab[$i]="E"
		{
		$count[0][4]=$count[0][4]+1;
		}
		if$tab[$i]="F"
		{
		$count[0][5]=$count[0][5]+1;
		}
		if$tab[$i]="G"
		{
		$count[0][6]=$count[0][6]+1;
		}
		if$tab[$i]="G"
		{
		$count[0][7]=$count[0][7]+1;
		}
		if$tab[$i]="H"
		{
		$count[0][8]=$count[0][8]+1;
		}
		if$tab[$i]="I"
		{
		$count[0][9]=$count[0][9]+1;
		}
		$i=$i+1;
	}

}

// ensuite on regarde quelle valeur est la plus grande
$j=1;
$valref=$count[0][0];
$questref=$count[1][0];
while $j<10
{
	if $valref<$count[0][$i];
	{
	$valref=$count[0][$i];
	$questref=$count[0][$i];
	}
$i=$i+1;
}

//ensuite il faut que tu renvoie vers ton flash les valeurs $valref et $ questref
// qui sont le nombre de fois ou la réponse a été données et la réponse

?>
redis moi si c'est ça que tu veut :lol:

par kek » 09 oct. 2008, 12:00

non non, on s'en fout du flash ici.

ce que je veux faire, c'est une requete dans la BDD, qui me sort pour chaque question, la réponse la + répondue.

J'ai une table avec les réponses, du style :

"untel a répondu 'A,B,C' à la premiere question"
"untel2 a répondu 'D,A,E' à la premiere question"
"untel3 a répondu 'B,C' à la premiere question"
"untel4 a répondu 'B' à la premiere question"


et je veux que mon script php me dise : "la réponse la plus répondue est B"

par fred9999 » 09 oct. 2008, 11:55

le problème est dans ton cas d'envoyé les infos récupérées du php vers ton flash non?

par fred9999 » 09 oct. 2008, 11:51

ah ok j'avais pa compris que tu avais utilisé flash (en meme temps tu l'avais pas dis)

l'interconnexion entre php et flash ... il faut pas de l'actionscript pour le traiter?

je crois que j'avais vu ça pour une galerie flash mais là ça va trop loin pour moi :lol:

par kek » 09 oct. 2008, 11:48

eheh :)

je sais pas si y a besoin de javascript ? en fait c'est pour un quizz en flash.
je dois juste récupérer la valeur moyenne stockée en BDD pour chaque question, et c'est le php qui renvoie ça à flash (mais ça on s'en fout)

par fred9999 » 09 oct. 2008, 11:45

salut kek,

on peut le traiter coté client avec un mix entre php et javscript je pense.

ps: pour une fois que c n'est pas un jeu qui me bouffe mon aprem :lol:

Résultats d'un quizz

par kek » 09 oct. 2008, 11:33

Hello,

je dois faire une petite appli en php, où l'utilisateur répond à un quizz.

Pour chaque question, il a 10 réponses possible, et il peut choisir 3 réponses maximum, et 1 minimum.
Ses réponses sont stockées dans une BDD, et au final, je dois ressortir la réponse la plus "répondue" par les utilisateurs.

Ex : pour la question 1, un mec répond les valeurs A, B, C
un autre répond B, E
un autre répond C, A, B

si on fait la moyenne, la réponse B est celle qui a été répondue le + de fois.

Je ne peux bien entendu pas utiliser AVG pour ça, mais je ne sais pas si je dois traiter ça côté serveur ou non ?
merci à qui pourra m'aider !