Vérifier les réponses d'un quiz
Fermé
meskina
Messages postés
50
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
26 septembre 2013
-
19 nov. 2012 à 13:19
Utilisateur anonyme - 23 nov. 2012 à 18:38
Utilisateur anonyme - 23 nov. 2012 à 18:38
A voir également:
- Vérifier les réponses d'un quiz
- Verifier un lien - Guide
- Logo quiz - Télécharger - Jeux vidéo
- Duel quiz - Télécharger - Société
- Verifier compatibilite windows 11 - Guide
- Verifier les appareils connectés facebook - Guide
5 réponses
Utilisateur anonyme
19 nov. 2012 à 13:22
19 nov. 2012 à 13:22
Bonjour,
pour ça il faut utilisé une base de donnée.
Tu récupère les infos de ta base de donnée et tu les mets dans ton if.
pour ça il faut utilisé une base de donnée.
Tu récupère les infos de ta base de donnée et tu les mets dans ton if.
meskina
Messages postés
50
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
26 septembre 2013
19 nov. 2012 à 13:32
19 nov. 2012 à 13:32
oh merci pour votre reponse rapide,alors oui j'ai crée une base de données,dont y avait aussi deux tables:questions et table reponses.comme suite:
Sur la page verifier.php,l'echo $_POST['choix'] ; m'affiche bien choix1 ou choix2 ou choix3 selon ce qui est cocher!
mais comment savoir la valeur de ce qui est cocher pour que la compare avec reponse??
-- Structure de la table 'questions' -- CREATE TABLE IF NOT EXISTS 'questions' ( 'id_question' int(11) NOT NULL AUTO_INCREMENT, 'choix1' varchar(255) NOT NULL, 'choix2' varchar(255) NOT NULL, 'choix3' varchar(255) NOT NULL, 'libelle' varchar(255) NOT NULL, //CONTIENT LA QUESTION 'reponse' varchar(255) NOT NULL, PRIMARY KEY ('id_question') )
-- Structure de la table 'reponses' -- CREATE TABLE IF NOT EXISTS 'reponses' ( 'id_reponse' int(11) NOT NULL AUTO_INCREMENT, 'choix' varchar(255) NOT NULL, 'score' int(11) NOT NULL, 'reponse' varchar(255) NOT NULL, PRIMARY KEY ('id_reponse') )
Sur la page verifier.php,l'echo $_POST['choix'] ; m'affiche bien choix1 ou choix2 ou choix3 selon ce qui est cocher!
mais comment savoir la valeur de ce qui est cocher pour que la compare avec reponse??
Salut, en même temps que vous récupérez la question il vous faut la réponse.
Une fois ceci fait les comparer.
sachant que je peux pas par exemple mettre dans le code if($_POST['choix']=="machan"
Si tout à fait mais comme ceci:
if(($_POST['choix']==$reponse){
//on incrémente le compteur réponse juste
}else{
//facultatif on incrémente le compteur réponse fausse, le mieux c'est d'avoir total
// réponses et total réponses bonne qui permettra de calculer les réponses fausses
};
//NOTE: Il vous faudra donc pour chaque question: interroger la base pour la question, les choix multiples éventuels, la valeur de la réponse elle peut être obtenue plus tard(vous transférez uniquement l'identifiant de la question dans un champ input type="hidden" ou alors directement la réponse) puisqu'elle intervient non dans la page du formulaire mais celle du traitement.
Voilà en dynamique on fait les comparaisons avec des variables qui contiennent des valeurs sur la base.
Le soucis maintenant est de savoir comment vous aller enregistrer les réponses justes:
Vous pouvez faire une variable de session, solution peu commode car soumise aux aléa de la durée de la session, du nombre d'utilisateur faisant un questionnaire en même temps etc...
Vous opuvez aussi enregistrer un fichier texte, xml ou csv; solution alternative quoique satisfaisante.
Vous pouez aussi enregistrer les résultats dans une table de données que vous ajoutez à votre base, la meilleure solution et la plus viable si vous souhaitez faire quelque chose de durable pour votre site
surtou que 'jai pas trouvé un cas pareil sur le net avec une db!
Alors vous n'avez pas cherché longtemps, c'est le cas de toutes les db et le principe même des pages dynamiques: On fait une page une fois en utilisant des variables contenant les valeurs sur la base, toutes les pages seront différentes pour l'affichage mais utilise le même script.
Dans votre cas ce sont les variables de la question et de la réponse juste qui permettent de rendre les pages dynamiques puisque leur contenu est différent sur chaque ligne de la table.
Une fois ceci fait les comparer.
sachant que je peux pas par exemple mettre dans le code if($_POST['choix']=="machan"
Si tout à fait mais comme ceci:
if(($_POST['choix']==$reponse){
//on incrémente le compteur réponse juste
}else{
//facultatif on incrémente le compteur réponse fausse, le mieux c'est d'avoir total
// réponses et total réponses bonne qui permettra de calculer les réponses fausses
};
//NOTE: Il vous faudra donc pour chaque question: interroger la base pour la question, les choix multiples éventuels, la valeur de la réponse elle peut être obtenue plus tard(vous transférez uniquement l'identifiant de la question dans un champ input type="hidden" ou alors directement la réponse) puisqu'elle intervient non dans la page du formulaire mais celle du traitement.
Voilà en dynamique on fait les comparaisons avec des variables qui contiennent des valeurs sur la base.
Le soucis maintenant est de savoir comment vous aller enregistrer les réponses justes:
Vous pouvez faire une variable de session, solution peu commode car soumise aux aléa de la durée de la session, du nombre d'utilisateur faisant un questionnaire en même temps etc...
Vous opuvez aussi enregistrer un fichier texte, xml ou csv; solution alternative quoique satisfaisante.
Vous pouez aussi enregistrer les résultats dans une table de données que vous ajoutez à votre base, la meilleure solution et la plus viable si vous souhaitez faire quelque chose de durable pour votre site
surtou que 'jai pas trouvé un cas pareil sur le net avec une db!
Alors vous n'avez pas cherché longtemps, c'est le cas de toutes les db et le principe même des pages dynamiques: On fait une page une fois en utilisant des variables contenant les valeurs sur la base, toutes les pages seront différentes pour l'affichage mais utilise le même script.
Dans votre cas ce sont les variables de la question et de la réponse juste qui permettent de rendre les pages dynamiques puisque leur contenu est différent sur chaque ligne de la table.
meskina
Messages postés
50
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
26 septembre 2013
19 nov. 2012 à 13:50
19 nov. 2012 à 13:50
choix1,choix2,choix3 se sont des champs que l'admin remplie pour donner à l'utilisateur des choix(radion btn),par exemple la question c'est quoi le capital de France?choix1:paris,choix2:casa...
Pour Table reponse c'est là où la bonne réponse est saisie
Pour Table reponse c'est là où la bonne réponse est saisie
Alors faut modifié comme ceci
:
CREATE TABLE IF NOT EXISTS 'reponses' (
'id_reponse' int(11) NOT NULL AUTO_INCREMENT,
'id_question' int(11) NOT NULL,
'choix' varchar(255) NOT NULL,
'score' int(11) NOT NULL,
'reponse' varchar(255) NOT NULL,
PRIMARY KEY ('id_reponse')
)
Et à chaque fois qu'une nouvelle question est posé il faut noté l'id dans la table "reponses".
Il faudra donc récupéré l'id de la question dans une variable.
Il me semble que ceci devrais fonctionner en supposant que dans la table "réponse" la colonne "choix" soit le nom de la case à la quel il faut répondre.
J'espère que cela va fonctionner car j'ai fait ça sans vérifié.
Si tu as un problème ou une erreur dit le moi.
En revanche tu dois y apporter des modifications.
:
CREATE TABLE IF NOT EXISTS 'reponses' (
'id_reponse' int(11) NOT NULL AUTO_INCREMENT,
'id_question' int(11) NOT NULL,
'choix' varchar(255) NOT NULL,
'score' int(11) NOT NULL,
'reponse' varchar(255) NOT NULL,
PRIMARY KEY ('id_reponse')
)
Et à chaque fois qu'une nouvelle question est posé il faut noté l'id dans la table "reponses".
Il faudra donc récupéré l'id de la question dans une variable.
<?php $idquestion mysql_connect("host","user","pass"); mysql_select_db("tadb"); $retour = mysql_query("SELECT * FROM reponses WHERE id_question='".$idquestion.'""); while ($donnees = mysql_fetch_array($retour)) { if(!empty($_POST['choix'])) { if($_POST['choix']== $donnees['choix']) { echo"Félicitation vous pouvez passer à la question suivant"; } else { echo"Perdu!" } } else { echo"Vous n'avez pas répondu"; } } ?>
Il me semble que ceci devrais fonctionner en supposant que dans la table "réponse" la colonne "choix" soit le nom de la case à la quel il faut répondre.
J'espère que cela va fonctionner car j'ai fait ça sans vérifié.
Si tu as un problème ou une erreur dit le moi.
En revanche tu dois y apporter des modifications.
meskina
Messages postés
50
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
26 septembre 2013
19 nov. 2012 à 17:28
19 nov. 2012 à 17:28
Re!
donc j'ai réussi à récupérer l'id à l'aide d'une requete comme suite:
(page ajout_question.php):
D'autre part,j'ai sauté à la page verifier_reponse.php et j'ai ajouté:
<?php
echo $maxi ;
//BIEN SUR IL CONNAIT PAS CE VARIABLE LA!
$retourid = mysql_query(" SELECT * FROM reponse WHERE id_question='".$maxi."' ");
while ($donnees = mysql_fetch_array($retourid))
{
if(!empty($_POST['choix'])) {
if($_POST['choix']== $donnees['reponse'])
{
echo "Félicitation vous pouvez passer à la question suivant!";
}
else
{
echo "faux!" ;
}
}
}
?>
ça pour but de récupérer l'id du question courante et le stocker pour que je puisse comparer sa réponse avec celle stoqué dans la table reponses!
je suis sur le bon chemin dèja ??
donc j'ai réussi à récupérer l'id à l'aide d'une requete comme suite:
(page ajout_question.php):
$query = mysql_query("insert into questions (libelle,choix1,choix2,choix3) values ('".$libelle ."','".$choix1."','".$choix2."','".$choix3."')"); //POUR RECUPERER SON ID $retour = mysql_query(" SELECT MAX(id_question) AS maxi FROM questions "); while ($donnees = mysql_fetch_array($retour)) { $maxi = $donnees['maxi']; //echo $maxi ; //POUR ENREGISTRER SON ID $reketa = mysql_query("insert into reponse (id_question) values ('".$maxi."')"); } ?> <script> alert("enregistrement de question faite!"); </script>
D'autre part,j'ai sauté à la page verifier_reponse.php et j'ai ajouté:
<?php
echo $maxi ;
//BIEN SUR IL CONNAIT PAS CE VARIABLE LA!
$retourid = mysql_query(" SELECT * FROM reponse WHERE id_question='".$maxi."' ");
while ($donnees = mysql_fetch_array($retourid))
{
if(!empty($_POST['choix'])) {
if($_POST['choix']== $donnees['reponse'])
{
echo "Félicitation vous pouvez passer à la question suivant!";
}
else
{
echo "faux!" ;
}
}
}
?>
ça pour but de récupérer l'id du question courante et le stocker pour que je puisse comparer sa réponse avec celle stoqué dans la table reponses!
je suis sur le bon chemin dèja ??
C'est un script de base.
Il permet de vérifié si c'est une bonne réponse.
Bien sur c'est un script à amélioré par tes soins.
Si tu ne connais pas le php je te conseil le site du zéro.
Evidemment qu'il ne connais pas la variable.
Cette variable récupère l'id de la question poser. Mais pour cela il faut la récupéré .Soit avec une variable de session soit par un champs hidden (attention aux failles de sécurités).
Il permet de vérifié si c'est une bonne réponse.
Bien sur c'est un script à amélioré par tes soins.
Si tu ne connais pas le php je te conseil le site du zéro.
Evidemment qu'il ne connais pas la variable.
Cette variable récupère l'id de la question poser. Mais pour cela il faut la récupéré .Soit avec une variable de session soit par un champs hidden (attention aux failles de sécurités).
meskina
Messages postés
50
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
26 septembre 2013
19 nov. 2012 à 18:31
19 nov. 2012 à 18:31
non ça va merci j'ai récupéré l'id de la question en cours aussi je recupére maintennat bien la valeur du radio btn coché par:
<input type="radio" name="choix" id= "choix2" value="<?php echo $fetch['choix2'];?>">
j'utilise plus loin son echo qui s'affiche bien!
Le seul souci qui me reste c'est que dans la condition il m'affiche toujours faux meme si le choix est correcte!!!
<input type="radio" name="choix" id= "choix2" value="<?php echo $fetch['choix2'];?>">
j'utilise plus loin son echo qui s'affiche bien!
Le seul souci qui me reste c'est que dans la condition il m'affiche toujours faux meme si le choix est correcte!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
meskina
Messages postés
50
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
26 septembre 2013
19 nov. 2012 à 15:41
19 nov. 2012 à 15:41
ok merci pour votre aide,je vais essayé ça et je te met au courant