Page 1 sur 1

Tri aléatoire de 10 questions dans une liste de 30

Posté : 20 sept. 2010, 11:25
par Mtkone
Bonjour,

J'ai un petit quizz à réaliser avec affichage aléatoire des questions. J'ai donc utilisé la fonction rand() dans ma requête, pas de soucis la dessus. Par contre j'ai une contrainte car ma table question contient 30 questions et je ne dois afficher que 10 questions aléatoirement sur ces 30 questions. Voila c'est la que je bloque

voici ma requête :

Code : Tout sélectionner

$sql = 'SELECT questions, id FROM questions ORDER BY RAND() LIMIT 1'; $req = mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br/>'.mysql_error());
Est-ce que quelq'un à une idée ?? Merci d'avance

Re: Tri aléatoire de 10 questions dans une liste de 30

Posté : 20 sept. 2010, 12:19
par Skikit
Salut,

En utilisant le LIMIT, tout simplement :
$sql = 'SELECT questions, id FROM questions ORDER BY RAND() LIMIT 0,10';

Re: Tri aléatoire de 10 questions dans une liste de 30

Posté : 20 sept. 2010, 14:24
par Mtkone
Merci de ta réponse Skikit,

Effectivement le limit 0,10 marche nickel, thank's a lot.

Par contre maintenant il me reste un autre pb à résoudre. En théorie les questions doivent s'afficher une par une. par exemple la question 1 s'affiche et je dois appuyer sur valider pour passer à la suivante....comment faire pour ne pas voir apparaitre deux fois la meme question ??

t'aurais pas encore une autre idée en stock ??? :lol:

Re: Tri aléatoire de 10 questions dans une liste de 30

Posté : 20 sept. 2010, 15:20
par AB
Par exemple tu peux enregistrer les 10 résultats dans un tableau que tu met dans une variable de session. Ensuite tu liste ton tableau en affichant les éléments un par un.

Re: Tri aléatoire de 10 questions dans une liste de 30

Posté : 20 sept. 2010, 17:49
par Mtkone
Merci de ta réponse AB

Je t'avoue que j'ai pas bien compris ce que tu voulais dire mais c'est certainement parce que je suis super debutant en php!! lol
pourrais tu être plus précis ? une fois que j'ai mis mes resultats dans une session, comment faire pour eviter que les memes questions ne resortent ??

merci de ton aide

Re: Tri aléatoire de 10 questions dans une liste de 30

Posté : 20 sept. 2010, 18:05
par AB
Ben si tu as tes questions dans un tableau il te suffit de faire par exemple
$question = array_shift($_SESSION['tableau']);
$question aura la valeur du premier élément du tableau et cette entrée sera supprimée du tableau.