Jump to content

How to select question from mysql tables randomly ?


JosephHanh

Recommended Posts

I am working on a quiz app

image 1 shows the index.php page
image 2 shows the first question
image 3 shows the second question
image 4 shows the third question
image 5 shows the result after completing the quiz
image 6 shows the database 'quizzer' and its tables
image 7 shows the 'questions' table
image 8 shows the 'choices' table

THIS LINK CONTAIN ALL THE CODE (and images) I HAVE DONE SO FAR

https://www.mediafire.com/folder/g5ao7f5q0fe6y/quiz

1.Now my question is how to select the question RANDOMLY from 'questions' table along with 'choices' (by adding code to the existing file or create a new one).

2.If user refresh/reload the page before starting ('Start Quiz') or click 'Take Again' after finishing the quiz, the question should appear randomly.

3.Basically I want to change the order of question appearing in the browser each time I refresh.

4.My work so far is mentioned above.........Please help me with this "RANDOM" problem !!

P.S - Will it be possible, by creating a random function in PHP which will check for repeat questions in a session and check for the 'id' of the question and if it is new display it on the page.

If so what should I do and if no then how to do?

Link to comment
Share on other sites

Depends on how large the table is. That article is talking about millions of rows. With small tables the performance of ORDER BY RAND() should be acceptable

mysql> SELECT COUNT(*) FROM votes;
+----------+
| COUNT(*) |
+----------+
|   182685 |
+----------+
1 row in set (0.08 sec)

mysql> SELECT * FROM votes
    -> ORDER BY RAND()
    -> LIMIT 10;
+--------+-------+------+
| id     | votes | type |
+--------+-------+------+
| 153136 |   141 |   15 |
| 166164 |   646 |    5 |
|  58917 |   742 |   19 |
| 164668 |   273 |   13 |
|  87220 |   773 |    3 |
|  85013 |   600 |   18 |
| 137931 |   662 |    6 |
| 119082 |  1025 |    7 |
|  84811 |   480 |    9 |
| 111548 |   326 |    3 |
+--------+-------+------+
10 rows in set (0.18 sec)
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.