Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Comment créer un QCM en php/mysql?


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut Comment créer un QCM en php/mysql?
    Salut,

    j aimerai creer un QCM , où il y a 250 questions au total ,

    je voudrais qu'a chaque fois que je lance un QCM ,il me sort aleatoirement 50 questions en un temps determiné

    je voudrais savoir quel est la meilleur facon de proceder?

    est-il vraiment interessant de mettre les questions dans mysql? et comment faire alors?

    est-ce que je dois faire un formulaire pour chaque question? je donne un N° au form et je fais un random pour sortir les formulaires a la suite

    merci pour votre aide

  2. #2
    Futur Membre du Club
    Inscrit en
    août 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Salut,
    Alors, oui, tu peux stocker ça dans mysql et c'est mieux
    Pour ton formulaire, utilise une requete avec RAND() en selectionnant 50 questions. Là dessus, tu donnes pour chaque case le numero de la question, et tu utilises un eachpost() pour vérifier chaque question une par une

  3. #3
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Hi!
    avec tes question stocké dan ta bdd ca semble plus logic surtout si tu veux en sortir aléatoirement...dans une petite boucle tu vas pouvoir utiliser les clé de tes champs pour sortir tes question et les faire afficher a l'écran

    Si tu ne souhaite pas utiliser de bdd je crois que ca va etre bcp plus lourd a traiter comme information
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    si je peux utilisé un bdd pas de pb ,
    seulement je voulais avoir des avis exterieur

    ok j insere mes question dans ma bdd et pour les reponses comment savoir c la bonne reponse pour la bonne question donc faire par exemple 3 tables:

    - 1 table question
    - 1 table reponse
    - 1 table resultat (ou je fais le lien entre la question et le resultat)

    qu est ce que vous en pensez?

  5. #5
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    moi je dirais une table question
    et une table réponse

    si une question peut avoir plus d'une réponse alors c'est une relation N:M il te faut 3 table

    donc:
    tblQuestions:
    questionID ->int (primary,auto-incremente)
    question ->varChar
    reponseID (si 2 tables)

    tblRéponse
    reponseID ->int(primary,auto-incremente)
    reponse ->varchar

    Si 3 table
    la 3e est comme ca

    tblQuestionReponse
    questionReponseID (primary, auto-increment)
    questionID
    reponseID
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : septembre 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut QCM_php
    Je travail sur un projet de création de QCM en PHP. Je stocke tous les QCM dans une base MySQL.

    Mes tables sont les suivantes :

    qcm_questionnaire : liste des questionnaires
    qcm_question : liste des questions de chaque questionnaire
    qcm_choix : liste des choix de réponse possible à chaque question
    qcm_reponse : liste des reponses à une question avec identification de l'utilisateur ayant fait la réponse
    qcm_utilisateur : liste des utilisateurs
    qcm_theme : arborescence des thèmes (voir la représentation intervallaire des arborescences)
    qcm_auteur : liste des utilisateurs auteurs de QCM dans chaque theme.

    Rentrons maintenant dans le détail de chacune des tables et de leur relations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Table qcm_questionnaire :
    idquestionnaire -> identifiant
    visible -> suppression logique
    idtheme_rel -> classement du questionnaire dans l'arborescence des thèmes
    titre
    intitule         
    tempsminimum -> en dessous de ce temps les utilisateurs ont le maximum de point(s) (application d'un facteur à leur score en fonction du temps de réponse)
    tempsmaximum -> au dessus de ce temps les utilisateurs ont le minimum de point(s) (application d'un facteur à leur score en fonction du temps de réponse)
    niveau -> niveau de difficulté du QCM
    idutilisateur_auteur_rel -> relation avec la table utilisateur pour savoir qui a créé le questionnaire
    validation -> un 'validateur' vérifie le questionnaire et le rend accessible aux utilisateur en le validant
    idutilisateur_validateur_rel -> relation avec la table utilisateur pour savoir qui a  validé le questionnaire
    datecreation  
    datevalidation 
    textevalidation -> justification textuelle de la validation ou invalidation du questionnaire
     
    Table qcm_question :
    idquestion -> identifiant
    visible  -> suppression logique
    idquestionnaire_rel  -> identifiant du questionnaire d'appartenance de la question
    ordre -> ordre d'affichage de la question dans le questionnaire
    titre        
    intitule        
    solution -> texte affiché lorsque l'utilisateur a répondu      
    type -> type de choix possible : 
    <ol class="decimal"><li style="">unique : bouton radio</li><li style="">unique_liste : liste de choix à sélection unique</li><li style="">multiple : checkbox</li><li style="">multiple_liste : liste de choix à sélection multiple</li><li style="">mot : champ texte</li><li style="">texte : champ bloc note (rédaction d'une réponse longue)</li></ol>
    niveau ->niveau de difficulté de la question
    idutilisateur_auteur_rel   
    validation
    idutilisateur_validateur_rel 
    datecreation
    datevalidation   
    textevalidation
     
    Table qcm_choix :
    idchoix
    visible
    idquestion_rel -> identifiant de la question à laquelle se réfère le choix de réponse
    titre -> 1ere partie du libelle du choix de réponse à la question
    intitule -> 2eme partie du libelle du choix de réponse à la question
    vraifaux -> réponse vrai : 1 fausse : 0
    valeur -> score attribué pour ce choix (valeur négative et positive)
     
     
    Table qcm_reponse :
    idreponse 
    visible
    idutilisateur_rel -> identifiant de l'utilisateur ayant répondu à la question 
    idchoix_rel -> si la question est de type unique, unique_liste, multiple ou multiple_liste, identifiant du choix de réponse retenu par l'utilisateur
    datereponse
    mot  -> si la question est de type mot, mot de réponse de l'utilisateur
    texte -> si la question est de type texte, texte de réponse de l'utilisateur
    idutilisateur_correcteur_rel -> si la question est de type mot ou texte, identifiant de l'utilisateur correcteur de la question
    datecorrection  
    textecorrection
    idquestion_rel -> identifiant de la question correspondante (cf. <a href="http://www.developpez.net/forums/showthread.php?t=204948" target="_blank">Recherche d'une question sans réponse dans un QCM</a>)
    Je peux décrire les autres tables si vous le souhaitez mais elles ne sont pas nécessaires à la compréhension du système de QCM. Je peux aussi prendre le temps d'expliquer comment je conçois plus en détail l'utilisation de ces tables si vous le souhaitez.

    J'espère que cette exemple sera utile à votre réflexion.

  7. #7
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    mais la...t'as une question qui vas avec ta description de table ou??
    c'est une vérification de tes tables que tu souhaite faire?
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : septembre 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Non, je n'ai pas de question. Je réponds à la question initiale qui est comment créer un QCM en PHP, en proposant l'exemple de ma propre expérience en la matière.

    Merci tout de même pour l'intéret porté aux messages sur le forum. C'est bien de savoir qu'il y a des personnes pretent à répondre aux questions qui ne sont pas posées

  9. #9
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2006
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par megapacman Voir le message
    si je peux utilisé un bdd pas de pb ,
    seulement je voulais avoir des avis exterieur

    ok j insere mes question dans ma bdd et pour les reponses comment savoir c la bonne reponse pour la bonne question donc faire par exemple 3 tables:

    - 1 table question
    - 1 table reponse
    - 1 table resultat (ou je fais le lien entre la question et le resultat)

    qu est ce que vous en pensez?
    Tu n'est pas obligé d'utlisier la base de donné tu peut juste utliser un code HTML ou php pour faire un QCM
    Mais tu sera besoin besoin de la base aprés une fois besoin de stocker les résultats.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment créer un QCM en html/php
    Par aydin24alain dans le forum Langage
    Réponses: 6
    Dernier message: 28/03/2008, 02h45
  2. Comment je peux installer du PHP & MySQL?
    Par amigo0 dans le forum SUSE
    Réponses: 2
    Dernier message: 03/03/2007, 19h55
  3. créer son site en php/mysql entierement
    Par zimotep dans le forum Requêtes
    Réponses: 15
    Dernier message: 25/03/2006, 00h39
  4. Réponses: 0
    Dernier message: 24/03/2006, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo