2015-07-17 2 views
1

Получили следующие таблицы:Возвращение массива строк в MySQL и PHP

forms 
- id 
- name 

questions 
- id 
- form_id 
- type 
- name 

questions_translations 
- id 
- question_id 
- lang_id 
- label 
- placeholder 

poss_answers 
- id 
- question_id 
- lang_id 

poss_answers_translations 
- id 
- poss_answer_id 
- value 

Теперь я хочу, чтобы выбрать все вопросы и возможные ответы от 1 формы, с 1 языка. Я могу легко выбрать все элементы без использования poss_answers_table:

SELECT b.*, f.* FROM app_questions q JOIN app_questions_translations qt ON q.form_id = 4 WHERE lang_id = 4 && qt.question_id = q.id 

Это заставляет меня все элементы для двух таблиц, но теперь я хочу, чтобы добавить в таблицу poss_answers. В этой таблице содержатся все возможные ответы для поля выбора или поля флажка или поля радио. Это ответы, которые можно выбрать из.

Но как я могу это сделать в течение 1 запроса?

+0

Просто присоединиться к таблице poss_answers, а также. – Styphon

ответ

2

Предполагая, что в одном вопросе (строке) имеется много ответов (строк), присоединение к таблице ответов даст вам вопрос, возвращенный для каждой строки ответа. Это не идеально.
В запросе «GetQuestions» вам нужно выполнить запрос «GetAnswers», чтобы вернуть ответы на все вопросы.

Что-то вроде этого ..

//'GetQuestions' 
foreach($questions as $question).. 

    echo $question; 

    //'GetAnswers - for Question; 
    foreach($answers as $answer).. 

     echo $answer; 

    //endAnswerLoop 

//endQuestionLoop 
+0

Да, я думаю, это все. Я думал об этом раньше, но я не мог заставить его работать, но я знаю, как это сделать теперь спасибо! –

Смежные вопросы