2017-01-21 4 views
-2

I 3 Tabellen, dieSchlurfen der Daten in MySQL Query

Tabelle 1 mit dem Namen "Frage"

Q_ID | C_ID | Question | Answer 
1 | 1 |Question_1 | Answer_1 

Tabelle 2 genannt "Antwort"

ID | Q_ID | C_ID | Answer_A  | Answer_B  | Answer_C 
1 | 1 | 1 | Dummy Answer 1 | Dummy Answer 2 | Dummy Answer 3 

und Tabelle 3 genannt "verbunden sind Kategorie "wo es ist derjenige, der die ganze Tabelle verbindet und heres meinen Code beim Abrufen der Daten in meinem HTML

select question.answer, answer.answer_a, answer.answer_b, answer.answer_c from question INNER JOIN answer ON question.q_id = answer.q_id where category.c_id=1 

Was ich möchte, ist, die Antworten wie

a. Dummy Answers 1 b. Dummy Answer 3 c. Answer_1 d. Dummy Answers 2  
+2

Design-Problem - die Spalten Answer_A, ... sollten separate Zeilen gewesen sein. Es wäre so einfach gewesen. – GurV

+0

@ GurV Ich verstehe, was du sagst. also werde ich eine Tabelle namens Antwort A, Antwort B, Antwort C und Antwort D haben? –

+0

Dies ist ein interessantes Projekt, lassen Sie uns wissen, wenn Sie eine Frage haben! Wenn Sie eine Frage stellen, teilen Sie uns bitte mit, was Sie bisher versucht haben. – Shadow

Antwort

0

Sie mischen können BY RAND verwenden ORDER() Ihr Ergebnis

SELECT question.answer, answer.answer_a, answer.answer_b, answer.answer_c from question 
INNER JOIN answer ON question.q_id = answer.c_id 
INNER JOIN answer on category.c_id = answer.q_id 
WHERE category.c_id=1 ORDER BY RAND() 

prüfen diese link für weitere Beschreibung

+0

Was ist diese Kategorie, wo es in Ihrem SQL hinzugefügt wird. –

0
randomisieren

Ich denke, wenn Sie this ERD verwenden würden, wäre es einfacher, die Fragen auszuwählen und zu mischen, während Sie immer noch wissen, welcher der richtige ist.

So gibt es eine "Frage" -Tabelle, die nur die Frage enthält, und eine "Antwort" -Tabelle, die alle möglichen Antworten für eine Frage enthält, und Sie können die richtige markieren.

Wenn Sie im Beispiel die Antworten in zufälliger Reihenfolge auswählen möchten, können Sie dies einfach tun: SELECT * FROM answers WHERE question_id = ? ORDER BY RAND(). Ersetzen Sie das Fragezeichen durch die Frage-ID, und Sie sind festgelegt.