SELECT tests.questions, otvety.answers
FROM tests, otvety
WHERE tests.id = otvety.test_id
tests.id это уникальный идентификатор с автоинкрементом в таблице tests.
id | questions
1 | первый вопрос
2 | второй вопрос
otvety.test_id содержит идентификаторы вопросов, к которым относятся ответы.
test_id | answers
__1__ | вариант ответа 1
__1__ | вариант ответа 2
__1__ | вариант ответа 3
Здесь все варианты относятся к первому вопросу, т.е. к вопросу с id = 1.
В результате данного запроса, получаю следующую результирующую таблицу.
questions | answers
вопрос 1 | ответ 1
вопрос 1 | ответ 2
вопрос 1 | ответ 3
Полученные результаты нужно записать в ассоциативный массив, а затем передать клиенту в формате JSON. Функция json_encode.
Вопрос в том, как это сделать, чтобы не записывать вопрос несколько раз, так как они повторяются в таблице, напротив каждого ответа, соответствующего ему.
Вообще я представляю, полученный JSON таким:
{"question": "вопрос 1", "answers": [{"answer": "ответ 1"}, {"answer": "ответ 2"}, {"answer": "ответ 3"}]}