2013-07-04 4 views
0

PHP 및 MySQL과 함께 시간 기반 퀴즈 프로젝트를 작성 중이며 아래 표와 같은 결과를 저장하고 있습니다.PHP 및 MySQL 시간 기반 퀴즈 응용 프로그램

테이블 :

    최소 시간 사용
  • 정답 = 100 %
  • 악보

    sid |Question_ID|answer |is_correct|User_ID|score|score_calculated|time_taken 
    1 |10   |Manager|Y   | 1 |200 | 0    |3.2 
    2 |10   |Emp |N   | 2 |200 | 0    |2.4 
    3 |10   |Manager|Y   | 3 |200 | 0    |6.5 
    4 |10   |Other |N   | 4 |200 | 0    |8.3 
    5 |11   |Yellow |N   | 1 |300 | 0    |2.3 
    5 |11   |green |N   | 2 |300 | 0    |5.8 
    6 |11   |Red |Y   | 3 |300 | 0    |6.4 
    7 |11   |Red |Y   | 4 |300 | 0    |9.1 
    

    점수 항목에 기초하여 각 질문

    점수 계산 마크를 포함 정답은 두 번째 최소 시간 = 75 %

  • 입니다. 3 최소 시간 사용
  • 정답 = 50 %
  • 다른 정답 = 25 %
  • 다른 잘못된 답변 = 0

계산 된 값은 ** 'score_calculated'에 업데이트 할 필요 이상 ** 들. 누구나 채점 절차를 해결할 수있는 방법이나 제안을 제안 할 수 있습니까?

+0

결과를 삽입하기 전에 계산을합니까? 당신은 sql에서 오랫동안 추악한'if()/case' 구조체를 작성할 수 있지만, 유지하는 것은 추악 할 것입니다. –

+0

@VaibhavDesai @ whizzzkid : 답장을 보내 주셔서 감사합니다. 이 계산은 네 번째 항목이 도착한 후에 만 ​​수행 할 수 있습니다. 첫 번째 최단 시간, 두 번째 최단 시간 등을 가져와야하기 때문입니다. 보기 또는 방아쇠의 예를 들어 제게 빛을주십시오. 다시 한번 감사드립니다. –

+0

@whizzzkid 위의 코멘트를 참조하십시오. –

답변

0

문제가 Ranking 레코드에 의해 time_taken에 의해 해결되었습니다. 나는이 쿼리와 나중에 편집 할 것입니다 ...

1

가장 좋은 방법은 MysqlTrigger입니다. 모든 답변 제출 (삽입 후)에서 트리거를 호출 할 수 있습니다.

+0

@ mikecurl91이 계산은 네 번째 항목이 도착한 후에 만 ​​수행 할 수 있습니다. 첫 번째 최단 시간, 두 번째 최단 시간 등을 가져와야하기 때문입니다. 예를 들어 주시겠습니까? –

관련 문제