Nate Nate - 2 years ago 67
SQL Question

Show data from database based on user input

I'm creating a way that a "teacher" could make an exam and the "student" can take an exam.

First off, it is also possible for a teacher to make new questions, using this query:

INSERT INTO questions (question, type) VALUES ('$question', '$type')

In the database, I set questions to also have question_id which is auto incremented after each entry. Then on a separate page, they can pick which questions they would like to add to the exam. So I just:

SELECT * FROM questions

Then there is a checkbox for them to check which questions to add the use this query:

INSERT INTO exams (question_id) VALUES ('$question_id')

The table exams also has an auto incremented exam_id.
So now I would like to display the questions the teacher picked, but I don't even know what type I should store question_id in exams (right now it is INT) so I can loop through them.

ie. Teacher picks questions 1,2,4,10 and query for getting the question would look like

SELECT question FROM questions WHERE question_id='1,2,4,10'

Answer Source

Assuming you are getting the question id by POST or GET, Try this:

$selected = implode(',', $_REQUEST['selectedquestionids']);

SELECT question FROM questions 
       WHERE question_id IN ($selected)
       GROUP BY question_id;

Hope this may help.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download