Page 1 sur 1

qcm génerer aliatoirement a partir d'une base de donées

Posté : 22 juil. 2015, 11:39
par anouaro
Bonjour tout le monde, :D :D
j'aurai besoin d'aide pour un travail qui consiste a crée un QCM génerer aliatoirement d’une base de données, ces questions doivent etre par la suite stocker, par ce que l’utilisateur peux refaire le qcm après 1mois mais ne doit pas avoir les même questions d’avant.

donc dans la 2eme fois il faut tenir compte des anciens questions.
vue que je début j’ai un peux de mal, :priere: :priere:

votre aide serai la bienvenu :D



Mon script est le suivant (mais il fait selement l'affichage des questions -la totalité ) 8-|




<?php
include 'ConnexionDB.php';

$sql = "SELECT id FROM ARTICLE ";
$data = $db->query($sql) or die ($db->error);

$qcm = mysql_query('SELECT * FROM Questions');

$nbQuestion =mysql_fetch_array(mysql_query('SELECT count(*) as NB FROM Questions'));

echo '<script type="text/javascript"> var nbQuestion = '.$nbQuestion["NB"].';</script>';
$q= 0;
$contenu = '';
$point = 0;
$contenu .= '<ul id="QCM" style="top:50px; text-align:left">';
while($data = mysql_fetch_array($qcm)){
$point = $point + $data['Note'];
$q++;
$contenu .= '<li><h3><font size=4> - '.$data['Questions'].' <br/> --Pages('.$q.'/'.$nbQuestion['NB'].')--</font></h3><br/><br/><br/>';

$reponds = mysql_query('SELECT * FROM Reponse WHERE Id_Question = ' . $data['Id']);
while($dataR = mysql_fetch_array($reponds)){
$contenu .= '<input id="'.$dataR['Id'].';" name="check[]" type="checkbox">'.$dataR['reponse'].'<br/>';
}
$contenu .= '</li>';
}
$contenu .= '</ul>';
echo $contenu;
?>

Re: qcm génerer aliatoirement a partir d'une base de donées

Posté : 22 juil. 2015, 11:50
par buckethead
bonjour anouaro j'ai le meme probleme que vous :S si qllq'u px nous aider :S

Re: qcm génerer aliatoirement a partir d'une base de donées

Posté : 22 juil. 2015, 13:25
par Ryle
Bonjour,

Il y a plusieurs points et plusieurs choses à prévoir

- limiter le nombre de questions proposées dans ta requête SQL (LIMIT 0, 10 par exemple pour ne récupérer que 10 questions)

- retourner des questions aléatoirement (pour pas avoir toujours les 10 mêmes (Tu peux utiliser ORDER BY RAND() toujours dans le SQL)

- enregistrer quelque part la liste des questions posées à l'utilisateur connecté : pour cela il te faut disposer d'une gestion des utilisateurs pour savoir qui est connecté et participe au quizz. En partant du principe que tu as déjà cette gestion d'utilisateur, il te faut alors consigné le fait que les 10 questions retournés par la requête lui ont été posées et stocker ces informations avec la date du jour. Par exemple dans une table idUser, idQuestion, quizzDate.

Tu sauras ainsi quelles questions ont été posées à l'utilisateur et quand. Tu pourras donc ajuster ou modifier ta requête qui liste les questions afin de : prendre 10 questions au hasard pour un nouvel utilisateur, ou prendre 10 questions au hasard parmi celles qui n'ont pas encore été posées à l'utilisateur depuis x temps (avec une jointure entre ta table de question et celle ou tu as consigné les questions déjà posées à l'utilisateur) ou même encore reposer les 10 mêmes questions pendant 1 mois ou ne plus lui poser de question pendant 1 mois ... bref tu fais un peu ce que tu veux avec cette info ;)

Re: qcm génerer aliatoirement a partir d'une base de donées

Posté : 23 juil. 2015, 11:56
par anouaro
Merci bcp Ryle d'avoir pris la peine de réfléchir et répondre a mon problème.
oui je vais fair ce que vous m'avez dit. :D