[php/mysql]quelle table utilisé ???

bonjour

voila je créer en php/mysql un systeme de questions/reponse

j'ai d'un coté une table eleve avec les champs

id,pseudo,nom,prenom,Numquestion,NbEssai, Nbbonnereponse,nbmauvaisereponse

de l'autre une table question

id,categorie,question,reponse

ma question est la suivante : comment faire en fonction de ces 2 tables pour pouvoir faire des stats par éleve en fonction de la catégorie choisi mais aussi par rapport aux categories (par exemple connaitre le taux de reussite de l'exercice) etc.....

faut - il créer une autre table ou alors joué sur ces 2 tables ?

5 réponses

  1. Salut,

    Je suis pas spécialiste en SQL, mais il y a des relations entres tes deux tables ?

    Par exemple eleve.Numquestion correspond à question.id ?

    Si tu as des relations, pas besoin de nouvelle table, tu fais tes requêtes avec des jointures et le tour est joué.
    0
    1. Contributeur
      en fait je recupere dans la table eleve le numéro de la question en cours et après je cherche dans la table questions le numéro correspondant

      1 fois l'exercice terminé le numero de question de la table eleve reviens a 1 pour l'eleve en question
      0
      1. Je t'avoues que comme ça, je sais pas trop, quand je fais des jointures et requêtes imbriquées, j'y vais à tatons, j'essaies jusqu'à obtenir le résultat voulu.

        Et comme je n'ai pas tes tables je ne peux tester.
        0
        1. Contributeur
          ok moi ce qui me pose justement probleme c de savoir si une 3e table est utile
          0
          1. Modérateur
            Oui, une troisième table est indispensable.
            Et d'ailleurs tu devrais en profiter pour supprimer NumQuestion de la table élève.

            Personnelement, je le ferais comme ça:
            ELEVE
            id
            pseudo
            nom
            prenom
            
            STAT_QUESTION
            
            id_eleve (reference à id dans eleve)
            id_question (reference à id dans question)
            resultat (booléen: faux / vrai, ou 0 / 1)
            
            QUESTION
            
            id
            categorie
            question
            reponse 

            Tu n'as besoin que de ça pour tes stats. Tu pourras savoir combien de fois la personne a eu faux et combien de fois elle a répondu à cette question.

            Exemple nombre de bonne réponse à la question 3 pour l'eleve "dupond":
            SELECT count(resultat) FROM ELEVE, STAT_QUESTION, QUESTION 
            WHERE ELEVE.id = STAT_QUESTION.id_eleve
            AND STAT_QUESTION.id_question = 3
            AND pseudo = "dupond"
            AND resultat = 1;

            Pour ce qui est de la question en cours (Numquestion), il vaudrait mieux gérer ça dans ton script (par exemple avec les sessions en Php).
            Et le nombre de tentatives, ça peut être un truc à rajouter dans STAT_QUESTION eventuellement.
            0
        2. Contributeur
          le probleme ce que j'arrive pas avec les sessions

          sinon par rapport aux stats avec ce que tu as donnée est ce que je peux obtenir les stats des eleves en fonctions de la catégorie et le resultat de tout les eleves pour une catégorie
          0