Compter les points d'un quizz.

Résolu/Fermé
Utilisateur anonyme - 28 févr. 2012 à 20:22
 Utilisateur anonyme - 29 févr. 2012 à 11:50
Bonjour, j'ai créé un formulaire et je le traite en PHP sans base de données.
<?php
session_start();
if (isset($_POST['formquizz'])) 
{
$rep_1 = $_POST['Q1'];
$rep_2 = $_POST['Q2'];
$rep_3 = $_POST['Q3'];
$rep_4 = $_POST['Q4'];
$rep_5 = $_POST['Q5'];
$rep_6 = $_POST['Q6'];
$rep_7 = $_POST['Q7'];
$rep_8 = $_POST['Q8'];
$rep_9 = $_POST['Q9'];
$rep_10 = $_POST['Q10'];
if (!empty($rep_1) && !empty($rep_2)&& !empty($rep_3)&& !empty($rep_4)&& !empty($rep_5)&& !empty($rep_6)&& !empty($rep_7)
&& !empty($rep_8)&& !empty($rep_9)&& !empty($rep_10))
{
// Que mettre ici ??
//
//
//
//

}
else
{
$erreur="Au moins un des champs obligatoire est vide .";
}
?>

Auriez vous une fonction pour calculer les points pour obtenir une note sur 10 ??




3 réponses

graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 974
28 févr. 2012 à 23:52
deja utilise la fonction "ou" a la place de la fonction "et (&&)"

if (!empty($rep_1) && !empty($rep_2).......

En effet, avec ta facon de faire, si aucun champs n' est rempli, ca bloque, or toi ce que tu veux, c'est que SI AU MOINS UN OU PLUSIEURS CHAMPS sont vides ca bloque. Donc fonction "ou" (OR)

Ensuite renseigne toi sur la fonction SUM qui permet de faire une addition (de points dans ton cas).

La ou tu as ecrit "que mettre ici", Ben justement, si tous les champs sont remplis, tu indiques le total de points et plus si affinités.
1
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
29 févr. 2012 à 08:39
Bonjour,

Il aurait été plus propre de faire un tableau et de ranger les post dedans (au lieu d'avoir 10 $rep_X) Comme ça on vérifié aussi en même temps si le post est empty. (if(isset...))

Il faut à un moment comparer la bonne réponse avec le résultat donné... Donc il faudra le double des variables (ou un deuxième tableau, j'insiste ;p)
0
Utilisateur anonyme
29 févr. 2012 à 11:50
Bonjour, j'ai utilisé un compteur ($points++;) :
<?php session_start();// On déclare que l'on va utiliser des variables de session 
if (isset($_POST['formquizz'])) 
{
$rep_1 = $_POST['Q1'];
$rep_2 = $_POST['Q2'];
$rep_3 = $_POST['Q3'];
$rep_4 = $_POST['Q4'];
$rep_5 = $_POST['Q5'];
$rep_6 = $_POST['Q6'];
$rep_7 = $_POST['Q7'];
$rep_8 = $_POST['Q8'];
$rep_9 = $_POST['Q9'];
$rep_10 = $_POST['Q10'];
if (!empty($rep_1) && !empty($rep_2)&& !empty($rep_3)&& !empty($rep_4)&& !empty($rep_5)&& !empty($rep_6)&& !empty($rep_7)
&& !empty($rep_8)&& !empty($rep_9)&& !empty($rep_10))
{
  $points=0;
 // Question 1
 if ($rep_1 == "P2A" ) 
 {	
 $points++;
 } 
 // Question 2 
 if ($rep_2 == "P1B" ) 
 {	
 $points++;
 } 
 // Question 3 
 if ($rep_3 == "P2C" ) 
 {	
 $points++;
 } 
 // Question 4 
 if ($rep_4 == "P2D" ) 
 {	
 $points++;
 } 
 // Question 5 
 if ($rep_5 == "P3E" ) 
 {	
 $points++;
 } 
 // Question 6 
 if ($rep_6 == "P2F" ) 
 {	
 $points++;
 } 
 // Question 7 
 if ($rep_7 == "P2G" ) 
 {	
 $points++;
 } 
 // Question 8 
 if ($rep_8 == "P1H" ) 
 {	
 $points++;
 } 
 // Question 9 
 if ($rep_9 == "P2I" ) 
 {	
 $points++;
 } 
 // Question 10 
 if ($rep_10 == "P3J" ) 
 {	
 $points++;
 } 
if($points==10)
{
$code="Très bien !Vous avez $points/10 !";
}
elseif($points <=6 && $points >10)
{
$code="Bien !Vous avez $points/10 !";
}
elseif($points==5)
{
$code="Passable !Vous avez $points/10 !";
}
elseif($point <5)
{
$erreur="Mauvais !Vous avez $points/10 !";
} 
else
{
$erreur="Erreur innatendue !";
}
}
else
{
$erreur="Au moins un des champs obligatoire est vide .";
}
}
?>

Je n'ai pas encore mis OR au lieu de AND (&&)
0