Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide pour methodologie

Quiz musical

Sujet résolu
    2 septembre 2010 à 22:20:17

    Bonsoir à tous,

    J'ai fait un petit quiz musical via php+mysql, qui fonctionne assez bien (le code n'est probablement pas optimisé, mais il fonctionne ET je comprends comment il fonctionne, double avantage :p Et oui, je suis très débutante en php et mysql).

    En gros:
    - Il y a 6 catégories de questions.
    - Via l'accueil, on lance le jeu.
    - On choisit la catégorie de question ou on tire une catégorie au sort.
    - Un script tire une question au sort dans la table de la catégorie sélectionnée.
    - La question s'affiche, et on peut écouter le morceau de musique correspondant. En dessous, il y a un lien pour accéder à la réponse...

    Le problème, c'est qu'au bout d'un temps de jeu finalement assez court, on retombe sur les mêmes questions, alors qu'il y a 400 questions par catégorie. Donc pas mal de questions ne sont jamais sélectionnées (du moins pas durant un temps de jeu raisonnable d'1 à 2h), alors qu'on peut retomber sur la même question 4 ou 5 fois dans le même laps de temps.

    Je cherche une méthode (et aussi un peu d'aide pour le code, si possible...) pour régler ce problème.
    Voilà ce que j'ai imaginé:
    à l'ouverture de la page d'accueil, on crée automatiquement une table dans la bdd du quiz. Cette table va servir à enregistrer, pour chaque question qui sera posée, la catégorie et le numéro de la question.
    Si la table existe dejà, on l'efface avant d'en recréer une vide (je n'ai pas réussi à utiliser une table temporaire, alors que l'effacement/création auto de la table, j'ai réussi à les faire... Jusqu'ici tout va bien ;p).

    A chaque tirage de question, on va vérifier dans la table si la question a déjà été posée.
    Si oui, on va tirer une nouvelle question au sort dans la même catégorie, puis vérifier, etc...
    Si non, on peut poursuivre le jeu, après avoir inscrit la question dans la table

    Je ne sais pas trop comment m'y prendre.
    1- Récupérer la categorie et le numero de la question tirée au sort, ça va.
    2- Voir si cela existe dans la bdd, c'est plus flou.
    J'ai ce code: $requete=mysql_query("SELECT * from quest_posees WHERE num_categorie='$valNum' AND categorie='$valCat' "); mais je ne sais pas quoi en faire ensuite...
    3- Et surtout, si la question a déjà été posée, comment revenir tout en haut de mon code pour tirer une nouvelle question au sort et la recomparer à la table. Il y a peut-être une histoire de boucle, mais ça, je ne maitrise pas encore...............................

    Merci par avance.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      3 septembre 2010 à 9:54:21

      Ca dépend de beaucoup de paramètres, donc mon idée n'est pas forcément la mieux, mais s'il n'y a que 400 questions, j'aurais tendance à construire un tableau d'objets Question que je placerais en session.
      C'est plus simple à manipuler et ça évite de multiplier les requêtes en base.
      • Partager sur Facebook
      • Partager sur Twitter
        3 septembre 2010 à 15:20:50

        Bonjour Enax,

        Merci de ta réponse.
        Mais, comme je le disais, je suis trèèèèèèèèèèèèès débutante, donc je ne comprends pas ce que tu me suggères...

        Je ne sais ce que c'est qu'un objet (oui, je sais, c'est pas bien, je me suis arrêtée après la partie 3 du tuto de Mateo... :euh: )
        Je viens de lire la page qui explique ce qu'est un objet, mais j'ai du mal à comprendre comment on l'adapte à mon cas.
        Et je ne comprends pas pourquoi les questions seraient les objets ? Ou alors ce seraient les question posées qui le seraient ? Mais je ne comprends pas pourquoi ce serait plus efficace de passer par un tableau d'objet plutôt que par ma table "de session"...
        Donc, je suis vraiment désolée, mais si tu pouvais me détailler un tout petit peu plus ce que tu entends par là, cela m'aiderait...

        Par ailleurs, tu as l'air de dire que c'est faisable, dans mon cas, s'il n'y a qu'un petit nombre de questions.
        Or il n'y en a pas 400, mais 6 fois 400, soit 2400 (6 catégories et 400 questions par catégorie / une bdd mysql de quiz comprenant 6 tables, une par catégorie: c'est ce que j'ai trouvé de plus pratique pour effectuer mon tirage au sort. On choisit une catégorie, ce qui détermine la table où effectuer le tirage au sort de question)

        Si tu as des précisions, ou d'autres idées, n'hésite.
        Merci par avance.
        • Partager sur Facebook
        • Partager sur Twitter

        Besoin d'aide pour methodologie

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown