Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1826 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Quiz + compteur de point en php

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quiz + compteur de point en php

n°2078127
tizou974
Posté le 25-05-2011 à 15:11:15  profilanswer
 

Bonjour,
Je dois réaliser un quiz en php simple avec un fichier html qui contient les questions, et je voudrais que ces questions soit transféré vers un compteur de point  :??: .  
Comme par exemple dans un jeu concours, je débute en php :( . J'ai essayé de faire quelque chose et je voudrais avoir votre avis svp ,recevoir des conseils, infos ...
merci d'avance  :)  .
 
voici mon essai  
<?php
  //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "question" ) ;
 
   /* Variable déclaré*/
   $value;
   $point;
   $total;
   $question1=$_POST["Q1"];
   $question2=$_POST["Q2"];
   $question3=$_POST["Q3"];
   $question4=$_POST["Q4"];
   
   
   
    //création de la requête SQL:
  $sql = "INSERT  INTO concour (id, question, reponse, point)
            VALUES ('','$question1', '$question2', '$question3', '$question4') " ;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
  ?>
                           
  <?Php
  if ($question1==($value=$_POST['oui']))  /*Si la reponce de la question 1 est bonne*/
   {
   ($point=1); } /*alors gain d'un point*/
   elseif ($question1==($value=$_POST['non'])) /*sinon la réponce de la question 1 est fausse*/
   {
   ($point=0);  /*alors aucun point*/
   
   
   
  if ($question2==($value=$_POST['oui']))  /*Si la reponce de la question 2 est bonne*/
   {
   ($point==1); } /*alors gain d'un point*/
   elseif ($question2==($value=$_POST['non'])) /*sinon la réponce de la question 2 est fausse*/
   {($point=0); /*alors aucun point*/
   
   
   
   
   
   
   
   
  if ($question3==($value=$_POST['oui']))  /*Si la reponce de la question 3 est bonne*/
   {
   ($point=1); } /*alors gain bed'un point*/
   elseif ($question3==($value=$_POST['non'])) /*sinon la réponce de la question 3 est fausse*/
   {($point=0); /*alors aucun point*/
   
   
   
 
  if ($question4==($value=$_POST['oui']))  /*Si la reponce de la question 4 est bonne*/
   {
   ($point==1); } /*alors gain d'un point*/
   elseif ($question4==($value=$_POST['non'])) /*sinon la réponce de la question 4 est fausse*/
   {($point=0);}}}} /*alors aucun point*/
   
   
  ?>
   
   Vous avez un total de:
   <?php
  /*calcul des points*/
  $total= $_POST["Q1"]+$_POST["Q2"]+$_POST["Q3"]+$_POST["Q4"];
  /*Affichage du total de point*/
   echo $total ;  
  ?>
   
   

mood
Publicité
Posté le 25-05-2011 à 15:11:15  profilanswer
 

n°2078227
silenssin
Rien ne se perd...
Posté le 25-05-2011 à 18:45:55  profilanswer
 

Bonsoir, bon... je ne comprend pas tout ton code, (enfin si mais j'aurais procédé autrement...).
 
Déjà pour ta variable $point il ne faut pas faire:
 
si la réponse est bonne ""$point = 1; sinon "$point = 0;" à part si tu donne le résultat en direct, si tu additionne tout les points (d'une 20aine de question) il faut juste faire: si la réponse est bonne "$point ++;"
 
Il faudrait que tu explique ton code si tu veut de l'aide.*
 
 
<?php
  //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "question" ) ;
 
   /* Variable déclaré*/
   $value;
   $point;
   $total;
   $question1=$_POST["Q1"]; <== Qu'est-ce qui est envoyé dans ces variable? si c'est les réponses ne l'appel pas question.
   $question2=$_POST["Q2"];
   $question3=$_POST["Q3"];
   $question4=$_POST["Q4"];
   
   
   
    //création de la requête SQL:
  $sql = "INSERT  INTO concour (id, question, reponse, point)
            VALUES ('','$question1', '$question2', '$question3', '$question4') " ;
 
tu ne peut pas enregistrer ceci maintenant car tu na pas encore compté les points...
Et pour un enregistrement multiple il faut plusieur ligne et pas une seule.
 

  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
  ?>
 
Ci_dessous tu ne peut pas demander ce genre de requête... $value ne vaut rien car tu la juste initialisé.
et que vaut $_POST["oui"]?
C'est la réponse qu'il devait donner?

 
<?Php
  if ($question1==($value=$_POST['oui']))  /*Si la reponce de la question 1 est bonne*/
   {
   ($point=1); } /*alors gain d'un point*/
   elseif ($question1==($value=$_POST['non'])) /*sinon la réponce de la question 1 est fausse*/
   {
   ($point=0);  /*alors aucun point*/
 
 
  if ($question2==($value=$_POST['oui']))  /*Si la reponce de la question 2 est bonne*/
   {
   ($point==1); } /*alors gain d'un point*/
   elseif ($question2==($value=$_POST['non'])) /*sinon la réponce de la question 2 est fausse*/
   {($point=0); /*alors aucun point*/
   
  if ($question3==($value=$_POST['oui']))  /*Si la reponce de la question 3 est bonne*/
   {
   ($point=1); } /*alors gain bed'un point*/
   elseif ($question3==($value=$_POST['non'])) /*sinon la réponce de la question 3 est fausse*/
   {($point=0); /*alors aucun point*/
 
  if ($question4==($value=$_POST['oui']))  /*Si la reponce de la question 4 est bonne*/
   {
   ($point==1); } /*alors gain d'un point*/
   elseif ($question4==($value=$_POST['non'])) /*sinon la réponce de la question 4 est fausse*/
   {($point=0);}}}} /*alors aucun point*/
   
?>
   
   Vous avez un total de:
<?php
  /*calcul des points*/
  $total= $_POST["Q1"]+$_POST["Q2"]+$_POST["Q3"]+$_POST["Q4"];
  /*Affichage du total de point*/
   echo $total ;  
?>  
Ici tu ne peut pas additionner tout ça... les variable valent les réponses si tes réponse sont numériques ok mais même en aucun cas il ne s'agis des points...
 
Pour faire simple ton code n'est pas compliqué à faire, voila se que j'ai compris, si c'est ça je peut t'aider sinon il faudrais comprendre se que tu veut faire:
 
Pour moi tu pose 4 question, ou on répond d'une certaine manière (je ne sais pas se que tu a choisis, input-text, radio ou select enfin bref),
tout ceci est envoyé sur cette page qui analyse, donne le résultat à la personne et l'inscrit dans une base de donnée.
 
Est-ce cela?


Message édité par silenssin le 25-05-2011 à 18:57:03
n°2078232
silenssin
Rien ne se perd...
Posté le 25-05-2011 à 19:16:53  profilanswer
 

Voila le code que tu voulait faire (je pense) c'est du php5 donc selon se que tu en fait tu devras faire des modifications:
 
<?php
 
 //tableau des informations de connexion
 $login = array();
 $login['serveur'] =  'localhost';
 $login['database'] =  'question';
 $login['account'] =  'root';
 $login['password'] =  '';
 
 //connexion
 try
 {
  $db = new PDO('mysql:host='.$login['serveur'].';dbname='.$login['database'].'', ''.$login['account'].'', ''.$login['password'].'');
 }
 catch (Exception $e)
 {
  die('Erreur : ' . $e->getMessage());
 }
 
 //initialisation de toutes les variables dont ont devras se servir.
 //personellement j'aurais opté pour un $_GET.
 $points = 0;
 $answer1=$_POST["Q1"];
 $answer2=$_POST["Q2"];
 $answer3=$_POST["Q3"];
 $answer4=$_POST["Q4"];
 
 //maintenant on vérifie les réponses:
 //question 1
 if ($answer1 == "la_réponse_désirée" )
 { $points ++;}
 //question 2
 if ($answer2 == "la_réponse_désirée" )
 { $points ++;}
 //question 3
 if ($answer3 == "la_réponse_désirée" )
 { $points ++;}
 //question 4
 if ($answer4 == "la_réponse_désirée" )
 { $points ++;}
 
 echo 'Vous avez un total de : '.$points.' point(s).';
 
?>
 
Pour se qui est de l'enregistrement dans la base de données je n'ai pas écrit le code car je ne vois pas se que tu désire en faire... enfin je ne comprend pas comment tu veut garder ces informations, donc donne moi plus de détails.


Message édité par silenssin le 25-05-2011 à 19:18:24
n°2078236
tizou974
Posté le 25-05-2011 à 20:17:00  profilanswer
 

Merci d'avoir pris le tps de regarder. Pour te répondre pour $_POST["Q1"]; je voulais définir les questions pour vouloir ensuite faire le total ensuite pour $_POST["oui"] c'étais pour vouloir dire la réponse est bonne et pour vouloir répondre a ses questions on répond j'utilise radio tel que  
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>A vous de jouer!!! </title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   </head>
   <body>
 <form action="question.php" method="post">
   <p>
   Que veut dire le mot php ?
<input type="radio" name="php" value="oui" id="answer1"  /> <label for="Hypertext PreProcessor">Hypertext PreProcessor</label>
<input type="radio" name="php" value="non" id="answer1" /> <label for="Personal HomePage">Personal HomePage</label>
<input type="radio" name="php" value="non" id="answer1"  /> <label for="Pro Hard Player">Pro Hard Player</label><br/>
 
 Quel fruit représente le logo de apple?
<input type="radio" name="logo" value="oui" id="Q2"  /> <label for="une pomme">une pomme</label>
<input type="radio" name="logo" value="non" id="Q2" /> <label for="une orange">une orange</label>
<input type="radio" name="logo" value="non" id="Q2"  /> <label for="une banane">une banane</label><br/>
 
 En quel année somme nous?
 <input type="radio" name="année" value="oui" id="Q3"  /> <label for="2011">2011</label>
<input type="radio" name="année" value="non" id="Q3" /> <label for="2010">2010</label>
<input type="radio" name="année" value="non" id="Q3"  /> <label for="2001">2001</label><br/>
 
 Où est situé l'île de la réunion?
<input type="radio" name="réunion" value="non" id="Q4"  /> <label for="Ocean Pacifique">Ocean Pacifique</label>
<input type="radio" name="réunion" value="oui" id="Q4" /> <label for="Ocean Indien">Ocean Indien</label>
<input type="radio" name="réunion" value="non" id="Q4"  /> <label for="Ocean Atlantique">Ocean Atlantique</label>
<input type="radio" name="réunion" value="non" id="Q4" /> <label for="Ocean Artique">Ocean Artique</label><br/>
 
<input type="submit" value="Valider">
 
Bien sur les questions ici sont des exemples pour voir si sa marche ou nn ^^

n°2078242
silenssin
Rien ne se perd...
Posté le 25-05-2011 à 20:32:00  profilanswer
 

ok.. bon c'est pas mal mais ne met pas value="oui" ou value="non"... pourquoi? parcequ'en regardant le code source de ta page la personne auras les réponses...
Ensuite dans le php ou j'ai écrit "la_réponse_désirée" tu met par rapport à la question le numéro qui est bon... mais se système que tu à fait n'est pas très... pratique, quitte à utiliser php et sql autant faire une base de gestion de tes questions.
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>A vous de jouer!!! </title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   </head>
   <body>
 <form action="question.php" method="post">
   <p>
   Que veut dire le mot php ?
<input type="radio" name="php" value="1" id="Q1"  /> <label for="Hypertext PreProcessor">Hypertext PreProcessor</label>
<input type="radio" name="php" value="2" id="Q1" /> <label for="Personal HomePage">Personal HomePage</label>
<input type="radio" name="php" value="3" id="Q1"  /> <label for="Pro Hard Player">Pro Hard Player</label><br/>
 
 Quel fruit représente le logo de apple?
<input type="radio" name="logo" value="1" id="Q2"  /> <label for="une pomme">une pomme</label>
<input type="radio" name="logo" value="2" id="Q2" /> <label for="une orange">une orange</label>
<input type="radio" name="logo" value="3" id="Q2"  /> <label for="une banane">une banane</label><br/>
 
 En quel année somme nous?
 <input type="radio" name="année" value="1" id="Q3"  /> <label for="2011">2011</label>
<input type="radio" name="année" value="2" id="Q3" /> <label for="2010">2010</label>
<input type="radio" name="année" value="3" id="Q3"  /> <label for="2001">2001</label><br/>
 
 Où est situé l'île de la réunion?
<input type="radio" name="réunion" value="1" id="Q4"  /> <label for="Ocean Pacifique">Ocean Pacifique</label>
<input type="radio" name="réunion" value="2" id="Q4" /> <label for="Ocean Indien">Ocean Indien</label>
<input type="radio" name="réunion" value="3" id="Q4"  /> <label for="Ocean Atlantique">Ocean Atlantique</label>
<input type="radio" name="réunion" value="4" id="Q4" /> <label for="Ocean Artique">Ocean Artique</label><br/>
 
<input type="submit" value="Valider">
 
(n'oublis pas de fermer ton <p>, le form, body et html.
Et pour ta base de donnée? tu voulais avoir quoi comme résultats dessus?

n°2078247
tizou974
Posté le 25-05-2011 à 20:56:05  profilanswer
 

En fait je voulais essayé de faire par la suite un classement du genre "celui qui a le plus de point est tel personne" on a besoin d'une BDD pour sa nn?

n°2078249
silenssin
Rien ne se perd...
Posté le 25-05-2011 à 21:12:41  profilanswer
 

Oui alors tout dépend de se que tu veut faire... un site qui pose des question et enregistre tes statistiques?
Dans se cas les gens doivent se connecter afin de jouer sur leur compte, si tu fait cela il te faut donc une base de donnée remplie de questions sinon tu va devoir faire les pages une par une... pas top.
Ensuite tu peut effectivement ranger les gens par le taux de bonne réponses.

n°2079081
tizou974
Posté le 30-05-2011 à 12:38:52  profilanswer
 

Suite a quelque contretemps j'ai pas pu repondre avant. Je voudrai tte remercier car sa marche maintenant mais reste plus qu'a régle un probleme pour le calcul il m'affiche toujours le meme total de point ai-je manquer quelque chose ?  
 
<?php
 
 //tableau des informations de connexion
 $login = array();
 $login['serveur'] =  'localhost';
 $login['database'] =  'question';
 $login['account'] =  'root';
 $login['password'] =  '';
 
 //connexion
 try
 {
 $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
  $bdd = new PDO('mysql:host=localhost;dbname=question', 'root', '', $pdo_options);
 }
 catch (Exception $e)
 {
  die('Erreur : ' . $e->getMessage());
 }
 
 //initialisation de toutes les variables dont ont devras se servir.
 //personellement j'aurais opté pour un $_GET.
  $points = 0;
 $value1=$_POST["php"];
 $value4=$_POST["logo"];
 $value9=$_POST["année"];
 $value11=$_POST["réunion"];
 $answer1=$_POST["php"];
 $answer2=$_POST["logo"];
 $answer3=$_POST["année"];
 $answer4=$_POST["réunion"];
 
 //maintenant on vérifie les réponses:
 //question 1
 if ($answer1 == $value1 )
 { $points ++;}
 //question 2
 if ($answer2 == $value4 )
 { $points ++;}
 //question 3
 if ($answer3 == $value9 )
 { $points ++;}
 //question 4
 if ($answer4 == $value11 )
 { $points ++;}
 
 echo 'Vous avez un total de : '.$points;
 
?>
 

n°2079197
linck123
Posté le 30-05-2011 à 16:57:48  profilanswer
 

$_POST est mieux, entre autre, les valeurs du formulaire ne s'affichent pas dans la barre d'adresse de cette façon.

n°2079241
tizou974
Posté le 30-05-2011 à 18:06:54  profilanswer
 

Merci mon questionnaire marche lui mais il m'affiche tjr 'vous avez un total de 4 point' donc je pense qu'il croit  vrai tt les réponses mais je vois pas la faute  :??:  :??:

mood
Publicité
Posté le 30-05-2011 à 18:06:54  profilanswer
 

n°2079589
tizou974
Posté le 31-05-2011 à 17:07:26  profilanswer
 

problème régler ^^


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Quiz + compteur de point en php

 

Sujets relatifs
[VBA Autocad] dessiner la symétrie d'un point par rapport à une ligne.[MATH] Matrice de projection d'un point sur un plan
Batch : Compteur dans une boucle for[VBA]modifier point d'entrée du programme [Resolu]
Macro remplacement de point par virgulesPAttern.matches comment autoriser que les chiffres et un point ?
Point at orientation (quaternion)[RESOLU] probleme d'espace et de point dans une recherche
client serveur quizunicité d'une courbe de HIlbert en 3D a partir du motif initial
Plus de sujets relatifs à : Quiz + compteur de point en php


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR