2012-11-02 3 views
-1

객관식 질문을 사용자에게 표시하는 데 문제가 있습니다. 나는 다음과 같은 테이블이 있습니다사용자에게 대답하여 객관식 질문 표시

multiple_choice_questions (quiz_id, 질문, c_answer) 이 테이블이 가지고있는 권리와 질문 답변

multiple_choice_answers (answer_id, quiz_id, 답) 이 표는 응답이 외래 키가

를 quiz_id 여기

multiple_choice_info (info_id, quiz_id, 이름, 클래스, 학습, 주제, 메모, 날짜) 전자에 대한 기본 정보는 ach 퀴즈는 실제로 사용자로부터 적절한 퀴즈를 선택하는 데 도움이됩니다. 예 : 사용자가 "lesson"수학으로 시험을 보여 주면

그 답과 함께 10 개의 무작위 질문을 표시하고 싶습니다. 각 질문에는 서로 다른 답변이 여러 개 있습니다. 예 : 질문 1에는 3 가지 답변이 있습니다. 질문 2, 5 가지 답변.

나는 quiz_id와 관련된 데이터를 잡으려고 노력했지만이 방법은 잘못되었습니다. PHP, mysql에 새로운 메신저.

<?php 
include('../connect_db.php'); 

$sql = "select * from multiple_choice_questions 
inner join multiple_choice_answers on (multiple_choice_questions.quiz_id =  multiple_choice_answers.quiz_id) 
inner join multiple_choice_info on (multiple_choice_questions.quiz_id = multiple_choice_info.quiz_id)"; 
$myData3 = mysql_query($sql); 
while($row = mysql_fetch_array($myData3)) { 
echo '<input type="text" value="'.$row['question'].'" name="q'.$row['quiz_id'].'"/><br>'; 
echo '<input type="radio" value="'.$row['answer'].'" name="q'.$row['answer'].'"/>"'.$row['answer'].'"'; 

} 
?>  
+0

왜 질문 표에 'quiz_id'가 있습니까? 'quiz_id'는 질문 ID가 아니십니까? 이 경우 질문과 질문의 1 : 1 관계가됩니다. – MrCode

+0

교사는 그가 원하는 답변을 여러 개 넣을 수 있습니다 –

+0

그래서 적용되는 모든 질문에 대해 설문지 행을 복제하고 있습니까? DB 구조가 옳지 않은 것처럼 보입니다. 질문 표에있는 info_id를 사용하면 질문이 설문지와 관련 될 수 있으므로 한 설문지에 많은 질문을 할 수 있습니다. – MrCode

답변

0

아래의 방법으로 쿼리의 서식을 지정하십시오. 이것은 무작위로 10 개의 줄을 줄 것입니다.

$sql = "select A.question,B.answer,A.quizid from multiple_choice_questions AS A 
inner join multiple_choice_answers AS B on (A.quiz_id = B.quiz_id) 
inner join multiple_choice_info AS C on (C.quiz_id = A.quiz_id) 
ORDER BY RAND() LIMIT 10"; 
$myData3 = mysql_query($sql); 

아래 스크립트를 사용해 볼 수 있습니까?

$sql = "select A.question,B.answer,A.quizid from multiple_choice_questions AS A 
inner join multiple_choice_answers AS B on (A.quiz_id = B.quiz_id) 
inner join multiple_choice_info AS C on (C.quiz_id = A.quiz_id) 
ORDER BY A.quizid,RAND()"; 
$myData3 = mysql_query($sql); 

    $lastQues = 0; 
$totalQues = 0; 
while($row = mysql_fetch_array($myData3)) { 

    if($totalQues == 10)break; 



    if($lastQues != $row['quiz_id']) 
    { 
     echo '<input type="text" value="'.$row['question'].'" name="q'.$row['quiz_id'].'"/><br>'; 
     $totalQues++; 
    } 
    echo '<input type="radio" value="'.$row['answer'].'" name="q'.$row['answer'].'"/>"'.$row['answer'].'"'; 

    $lastQues = $row['quiz_id']; 

} 
+0

이것은 10 개의 질문이있는 10 개의 대답을 보여줍니다. 내가 필요한 것이 아닙니다. 나는 각 질문에 아래에서 그 대답이 필요하다. 예 : 질문 1 : 안녕하세요? 대답 1 : 괜찮아요, 대답 2 .., 대답 3 등 –

+0

감사합니다. 시도해 볼게! –

+0

좋지만 각 질문에는이 예에서 3 가지 대답이 있습니다. 내 경우에는 각 질문마다 다른 수의 답변이 있습니다. 예 : 질문 1 : 3 가지 답변. 질문 2 : 5 가지 답변. 응답의 수는 multiple_choice_answers 테이블에 따라 다릅니다. 하나의 다른 문제는 하나뿐 아니라 모든 라디오 버튼을 선택할 수 있다는 것입니다. –