2012-03-15 3 views
0

P. 나는 php & webform 스크립팅을 처음 사용합니다. 현재데이터베이스에서 질문을 표시하는 웹 양식 만들기

I가 MySQL 데이터베이스 내부의 다음과 같은 객관식 질문 테이블 :

 |MCQ_ID|Question|Opt_1|Opt_2|Opt_3|Opt_4|Opt_5| 
    |1|What is the port|23|21|22|80|53 

내 목표는 는 (1) 질문은에서 선택의 PHP 스크립트를 사용하여 웹 형태의 퀴즈를 만드는 것입니다 데이터베이스 &은 각 질문에 단 하나의 대답으로 객관식 형태로 표시됩니다. (2) 특정 질문에 소요되는 시간을 기록하는 타이머가 있으므로 각 웹 폼에는 하나의 질문 만 표시되어야합니다.

아래는 나의 시작 스크립트 & 위의 목표를 달성하기 위해 어떻게해야합니까?

<!DOCTYPE html> 
    <html> 
     <head> 
      <style type='text/css'> 
       #wrapper { 
        width:950px; 
        height:auto; 
        padding: 13px; 
        margin-right: auto; 
        margin-left: auto; 
        background-color: #fff; 
       } 
      </style> 
     </head> 
     <body bgcolor="#e1e1e1"> 
      <div id="wrapper"> 
       <center><font fact="Andalus" size="5">Test Quiz</font></center> 
       <br /><br /><br /><br /> 
      </div> 

      <?php 
       //Start Variables 
       $username = "root"; 
       $password = ""; 
       $database = "Test"; 
       //End Variables 

       //Connect To Database 
       $link = mysql_connect(localhost,$username,$password) or die ('Could not connect :'. mysql_error()); 
       mysql_select_db($database) or die("Unable to select database"); 

       //SQL Get Questions 
       $query = "SELECT * FROM MCQuestionBank"; 
       $result = mysql_query($query) or die ('Query failed:'. mysql_error()); 
       $row = mysql_fetch_array($result,MYSQLI_ASSOC); 

       //Get results 
       /* 
       while ($row = mysql_fetch_array($result,MYSQLI_ASSOC)) 
        { 
         echo '<br> QuestionName : ' .$row{'Question'} ; 
         echo '<br> Option 1 : ' .$row{'MCQ_Opt1'}; 
         echo '<br> Option 2 : ' .$row{'MCQ_Opt2'}; 
         echo '<br> Option 3 : ' .$row{'MCQ_Opt3'}; 
         echo '<br> Option 4 : ' .$row{'MCQ_Opt4'}; 
         echo '<br> Option 5 : ' .$row{'MCQ_Opt5'}; 
        } 
       */ 
       mysql_free_result($result); 
       mysql_close($link); 
      ?> 
     </body> 
</html> 
+0

질문에 6 개 이상의 옵션이 필요한 경우 어떻게됩니까? –

+0

이 객관식 질문 세트는 5 가지 옵션으로 보관하고 있습니다. – Derek

+0

PHP 스크립트 작성 부분은 어떻습니까? 어떤 지침이 나에게 상당히 혼란스러워 보입니까? – Derek

답변

1

테이블 구조가 관리하기 어려울 수 있습니다. 데이터베이스를 사용하려면 정규화해야합니다. 질문은 하나의 테이블에 들어갑니다. 다른 답변. 그렇게하면 훨씬 더 유연 해집니다. 예를 들어 질문에 5 가지 이상의 선택이 필요할 때 어떻게 할 것입니까?

관계형 데이터베이스에 대한 일반적인 배경 정보를 얻은 다음 문제로 돌아옵니다. 당신은 당신의 선택 당신은에 의해 답을 제출 HTML 양식을 사용할 수 있습니다 www.echoecho.com/htmlforms10.htm

를 표시하는 라디오 버튼을 사용할 수 있습니다

http://www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx

+0

PHP 스크립트 작성 부분은 어떻습니까? 어떤 지침이 나에게 상당히 혼란스러워 보입니까? – Derek

+0

PHP를 작성하려면 PHP를 배워야합니다. PHP에 대한 초보자가 되셨습니까? 거기서 시작해서 구체적인 질문이 있으면 다시 오십시오. 당신이 그 노력에 가고 싶지 않으면 당신은 아마 선반 퀴즈 제작자 (그들의 수백이있다)로부터 떨어져서가는 것이 좋을 것이다. –

1
  • : 이것은 좋은 시작이 될 수있다 사용자가 서버로 돌아갑니다. 데이터베이스에 저장되어있는 정확한 답을하지 않았다면

www.w3schools.com/html/html_forms.asp

  • 수동으로 답변을 수정해야합니다. 선다형 문제의 경우 데이터베이스에 정답을 저장하는 것이 매우 쉽습니다. 정답을 나타내는 열이 하나 더 있어야합니다.

www.w3schools.com은 이러한 것들을 배우기에 좋은 출발점이 될 것입니다.

+0

답을 수정하는 것에 관해서는 어떤 차이가 있는지/나는 다음과 같은 경우에 더 나은 선택이다. (1) 데이터베이스의 테이블에 답을 저장하고 PHP 스크립팅을 사용하여 답을 비교한다.)? 내가 질문의 순서를 무작위로 선택할 수있는 기회가있을 수 있습니다. 그것은 잠시 동안 내 뇌 세포를 뻗어 왔습니다. – Derek

+0

정답을 DB에 저장하고 PHP를 사용하여 비교할 수 있습니다. 이미 HTML 양식에 대해 읽었으며 http://www.w3schools.com/php/php_post.asp 페이지를 참조해야합니다. 이 페이지의 간단한 예를 통해이 작업을 수행하는 방법을 이해하는 데 도움이됩니다. 또한 예를 들어, PHP에서 rand() 함수를 사용하여 순서를 무작위로 추출 할 수 있습니다. –

1

이 작업을 올바르게 수행하는 것은 간단한 작업이 아닙니다. 최소한 세 가지 테이블을 사용해야합니다 : 1. 질문과 고유 ID가있는 테이블. 2. 답이있는 테이블, 이동하는 질문의 ID 및 참인지 거짓인지를 나타내는 부울 값. 3. 사용자 응답을 추적하는 방법. 최소한 세션 ID와 ID를 응답에 저장해야합니다. 이 기능이 없으면 페이지 당 질문을 제대로 수행 할 수 없습니다 (지금 당장 모든 질문을 한 페이지에 버려야합니다). 4. 사용자 테이블은 거의 선택 사항이 아니며 세션 ID 대신 위의 표에있는 고유 한 ID 필드가 있습니다.

JOIN 쿼리를 읽는다면이 테이블을 서로 이야기하는 것이 어렵지 않습니다.

일단 좋은 데이터베이스를 설정하면 PHP를 볼 준비가 된 것입니다. 우리 모두는 자신의 길을 시작했습니다. 우리는 당신의 미래에 많은 머리카락을 당길 것이라고 예견합니다.

관련 문제