Se connecter avec
S'enregistrer | Connectez-vous

Qcm à points ...

Dernière réponse : dans Programmation

Bonjour, je souhaiterai réaliser le plus simplement posible un qcm avec des cases à cocher, et chaqu'une des cases rapporte 0,1,2 ou 3 points, la personne qui le fait entre son pseudo et un classement est fait à la fin en affichant simplement 3 colones : n°/pseudo/points.

Je sait que je vai devoir faire appel notaement au PHP, je peut me débrouiller mais j'ai besoin de quelque pistes pour commencer car je ne sait pas du tout comment m'y prendre.

Merci.

Autres pages sur : qcm points

Lassé par la pub ? Créez un compte
Expert Programmation

salut
Personnellement je n'est jamais fais ce genre de chose
Mais je pense qu'avec nos deux cerveau on devrais ce débrouiller

vite fais comme sa , je dire ma solution ( qui n'est peut être pas la bonne , mais si un pro passe ici , juste qu'il nous aide et nous donne pas le code dessuite si non on va rien apprendre ^^ )


donc je ferais un formulaire , avec des checkbox et chaque cher box a pour valeur le nombre de point quel doit rapporter ( ^^ complexe a dire )
ensuite on mais tous les résultat dans un variable , puis on fais une addition ( une boucle )
et on envoi tous sa dans une table mysql !
Expert Programmation

alors je viens de re-penser au problème !

donc déjà il ne faux pas envoyer les résulta du Qcm dans une base ( les 0,1,2 ou 3 ) mais les additionner comme sa on évite d'encombrer une table pour rien , on envois le résulta final seulement !

ensuite je on devrais utiliser des ration a la place des checkbox , car si non , il suffie de tous cocher , et hop on a le max de point pasque l'on gagner 6 point par question ( 1+2+3+0=6)
alors que avec les ration on envoi soit 1 , 2 ,3 ou 0 !!

je pense que le code devrais tenir sur 3 page ( plus 1 avec les id de connections a BDD =) )
- le formulaire
- le calcule des résulta + envoi sur la BDD
- L'affichage
- la connections

je vais tester la technique que j'ai en tête et je reviens poster les resulta

non en fait j'ai mal expliquer la chose.

On à à chaque ligne, une question avec une checkbox. Et on coche ou pas !

Mais celui qui le fait ne voi pas le nombre de points, il s'en fout !

Moi à chaque checkbox, si il ne la coche pas il gagne 0, sinon un 1, 2, ou 3 mais ça il ne le voi pas.

Je me suis mal exprimer c'est pas vraiment un QCM en fait !

J'èspère que tu n'aura pas travailler pour rien.

Merci encor.
Expert Programmation

Bon sa devrais ressembler a sa :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form action="2.php" method="post">
<p>
Ici la premier question :<br />
<input name="a" type="radio" value="0" /> 0 point <br />
<input name="a" type="radio" value="1" /> 1 point <br />
<input name="a" type="radio" value="2" /> 2 point <br />
<input name="a" type="radio" value="3" /> 3 point <br />
</p>
<p>
Ici la deuxieme question :<br />
<input name="b" type="radio" value="0" /> 0 point <br />
<input name="b" type="radio" value="1" /> 1 point <br />
<input name="b" type="radio" value="2" /> 2 point <br />
<input name="b" type="radio" value="3" /> 3 point <br />
</p>
<p>
Ici la troisieme question :<br />
<input name="c" type="radio" value="0" /> 0 point <br />
<input name="c" type="radio" value="1" /> 1 point <br />
<input name="c" type="radio" value="2" /> 2 point <br />
<input name="c" type="radio" value="3" /> 3 point <br />
</p>
<input type="submit" value="Valider" />
</form>
</body>
</html>


et :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php

$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];

$total= $a + $b + $c ;
echo $a ;
echo $b ;
echo $c ;
echo $total ;

?>
</body>
</html>


mais sa marche pas -_-"

C'est bon ! Grace à ton exemple, car je ne m'entend pas trop avec les parties de formulaires en htm non plus^^

J'ai réussi à faireun petit truque qui fonctionne :

  1. <body>
  2. <form action="2.php" method="post">
  3. <p>
  4. Ici la première question :<br />
  5. <input name="a" type="radio" value=2 />
  6.  
  7. </p>
  8. <p>
  9. Ici la deuxieme question :<br />
  10. <input name="b" type="radio" value=3 />
  11.  
  12. </p>
  13.  
  14. <input type="submit" value="Valider" />


  1. <?php
  2.  
  3. $points_a = $_POST['a'];
  4. $points_b = $_POST['b'];
  5.  
  6. $total = $points_a + $points_b;
  7.  
  8. echo $total;
  9.  
  10. ?>


Maintenant cela reste à améliorer, mais la base fonctionne !
Expert Programmation

oui cela est possible !

si non reparlons de ton formulaire .

C'est une question avec plusieurs réponse
mais on peut choisir qu'une solution
ou
C'est une question avec plusieurs réponse
mais il on peut choisir plusieur solutions

ensuite , on va afficher quoi sur la page des résulta ?
un tableau avec la position et pseudo et le nombre de point obtenue ?

en fait c'est bon j'ai tout fini, voila pour toi ça sera plus clair :
Pour le moment les questions ne sont pas faites ...et elles raportent toutes 1 points en fait ...et c'est ensuite la valeur que je changerai...
  1. <?php
  2.  
  3. // CONNECTION
  4.  
  5. mysql_connect("localhost", "root", "");
  6. mysql_select_db("questionnaire");
  7.  
  8.  
  9. if($_POST['pseudo'] != NULL)
  10. {
  11.  
  12. $points_question1 = $_POST['question1'];
  13. $points_question2 = $_POST['question2'];
  14. $points_question3 = $_POST['question3'];
  15. $points_question4 = $_POST['question4'];
  16. $points_question5 = $_POST['question5'];
  17. $points_question6 = $_POST['question6'];
  18. $points_question7 = $_POST['question7'];
  19. $points_question8 = $_POST['question8'];
  20. $points_question9 = $_POST['question9'];
  21.  
  22. $pseudo = $_POST['pseudo'];
  23.  
  24. $total = $points_question1 + $points_question2 + $points_question3+ $points_question4 + $points_question5 + $points_question6 + $points_question7 + $points_question8 +$points_question9;
  25.  
  26. $reponse = mysql_query("SELECT * FROM points");
  27.  
  28. $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
  29.  
  30. mysql_query("INSERT INTO points VALUES('', '$pseudo', '$total')");
  31. ?>
  32.  
  33. <p>
  34. Points pour : <?php echo $pseudo; ?> : <?php echo$total; ?><br>
  35.  
  36. <a href="index.php">Retour</a><br />
  37.  
  38.  
  39. </p>
  40.  
  41. <?php
  42.  
  43. }
  44. else
  45. {
  46.  
  47. ?>
  48.  
  49. <form method="post">
  50.  
  51. <p>
  52.  
  53. Cochez la case si cela vous correspond :<br>
  54.  
  55.  
  56. <input name="question1" type="radio" value=1 /> texte Question 1<br>
  57. <input name="question2" type="radio" value=1 /> texte Question 2<br>
  58. <input name="question3" type="radio" value=1 /> texte Question 3<br>
  59. <input name="question4" type="radio" value=1 /> texte Question 4<br>
  60. <input name="question5" type="radio" value=1 /> texte Question 5<br>
  61. <input name="question6" type="radio" value=1 /> texte Question 6<br>
  62. <input name="question7" type="radio" value=1 /> texte Question 7<br>
  63. <input name="question8" type="radio" value=1 /> texte Question 8<br>
  64. <input name="question9" type="radio" value=1 /> texte Question 9<br>
  65.  
  66. </p>
  67.  
  68. Pseudo :
  69.  
  70. <input name="pseudo" type="text" value="" />
  71.  
  72. <input type="submit" value="Valider" /><br><br>
  73.  
  74. </form>
  75.  
  76. <strong>"Classement" :</strong><br><br>
  77.  
  78.  
  79. <?php
  80. $reponse = mysql_query("SELECT * FROM points ORDER BY points DESC");
  81.  
  82. while ($donnees = mysql_fetch_array($reponse) )
  83. {
  84. ?>
  85.  
  86. Pseudo : <?php echo $donnees['Pseudo'];?> <br>
  87. Points : <?php echo $donnees['Points'];?> <br><br>
  88.  
  89. <?php
  90. }
  91.  
  92. mysql_close(); // Déconnexion de MySQL
  93.  
  94. }
  95. ?>


Et pour la bdd :

CREATE TABLE `points` (
`id` mediumint(9) NOT NULL auto_increment,
`Pseudo` text NOT NULL,
`Points` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Si tu le fait tu comprendra mieux.
Expert Programmation

enfin , moi j'ai mie des radio pasque je je voyer pas le questionnaire comme sa !
mais avec ce type de questionnaire vos mieux mettre des checkbox

Omg , ton questionnaire ma fais peur !
j'ai fais 85 ! est sans tricher ...

moi je change de siege pasque j'ai mal au cul !
et je passe plus de 16 heure par jours devant mon pc , et souvant les weekend je fais non stop ^^
Les volet c'est 1 fois par mois
est les pause avec les yeux a moiter ouvert sur le bureau de windows sans rien faire m'arrive fréquemment , surtout le matin a 10h quand je reviens d'un camping sauvage organisée avec des pote 10 minute avant sur wow ( comme c'est le cas actuellement, et en plus ya fais froit toute la nuits )
Lassé par la pub ? Créez un compte
Tom's guide dans le monde