You are here

function quiz_store_question_result in Quiz 6.6

Same name and namespace in other branches
  1. 8.4 quiz.module \quiz_store_question_result()
  2. 5.2 quiz.module \quiz_store_question_result()
  3. 6.2 quiz.module \quiz_store_question_result()
  4. 6.3 quiz.module \quiz_store_question_result()
  5. 6.4 quiz.module \quiz_store_question_result()
  6. 6.5 quiz.module \quiz_store_question_result()
  7. 7.6 quiz.module \quiz_store_question_result()
  8. 7 quiz.module \quiz_store_question_result()
  9. 7.4 quiz.module \quiz_store_question_result()
  10. 7.5 quiz.module \quiz_store_question_result()
1 call to quiz_store_question_result()
quiz_take_quiz in ./quiz.module
Handles quiz taking.

File

./quiz.module, line 1265
Quiz Module

Code

function quiz_store_question_result($result, $options) {

  /*
  if (!is_object($result) || !$result->nid || !$result->vid || !$result->rid) {
    // FIXME: This error is for debugging only. Remove before 3.0 is released.
    drupal_set_message("No answer could be saved. If you see this message, file a bug report.", 'error');
    return;
  }
  */
  if (isset($result->is_skipped) && $result->is_skipped == TRUE) {
    if ($options['set_msg']) {
      drupal_set_message('Last question skipped.', 'status');
    }
    $result->is_correct = FALSE;
    $result->score = 0;
  }
  else {

    // Make sure this is set.
    $result->is_skipped = FALSE;
  }
  if (!isset($result->score)) {
    $result->score = $result->is_correct ? 1 : 0;
  }

  //watchdog('quiz', 'quiz_store_question_result: storing.');
  $rid_count = db_result(db_query("SELECT COUNT('result_id') AS count FROM {quiz_node_results_answers} WHERE question_nid = %d AND question_vid = %d AND result_id = %d", $result->nid, $result->vid, $result->rid));
  if ($rid_count > 0) {
    db_query("UPDATE {quiz_node_results_answers}\n      SET is_correct = %d, points_awarded = %d, answer_timestamp = %d, is_skipped = %d\n      WHERE question_nid = %d AND question_vid = %d AND result_id = %d", $result->is_correct, $result->score, time(), $result->is_skipped, $result->nid, $result->vid, $result->rid);
  }
  else {
    db_query("INSERT INTO {quiz_node_results_answers}\n      (question_nid, question_vid, result_id, is_correct, points_awarded, answer_timestamp, is_skipped)\n      VALUES (%d, %d, %d, %d, %d, %d, %d)", $result->nid, $result->vid, $result->rid, $result->is_correct, $result->score, time(), $result->is_skipped);
  }
}