You are here

function _quiz_delete_results in Quiz 7.6

Same name and namespace in other branches
  1. 8.4 quiz.admin.inc \_quiz_delete_results()
  2. 6.4 quiz.admin.inc \_quiz_delete_results()
  3. 7 quiz.admin.inc \_quiz_delete_results()
  4. 7.4 quiz.admin.inc \_quiz_delete_results()

Delete a single result, or all results for a given user and a given quiz.

Parameters

$result_id: result if for the result to be deleted

$nid: Node id for the quiz the result belongs to. If set all the users results for this quiz will be deleted.

File

./quiz.admin.inc, line 1348
Administrator interface for Quiz module.

Code

function _quiz_delete_results($result_id, $nid = NULL) {
  $result_ids = array();

  // We are to delete all results for a certain user on a certain quiz.
  if (isset($nid)) {

    // TODO: We should be able to rewrite this one to use the DBTNG.
    $res = db_query('SELECT result_id
            FROM {quiz_node_results}
            WHERE nid = :nid AND uid = (
              SELECT uid
              FROM {quiz_node_results}
              WHERE result_id = :result_id
            )', array(
      ':nid' => $nid,
      ':result_id' => $result_id,
    ));
    while ($result = $res
      ->fetchField()) {
      $result_ids[] = $result;
    }
  }
  else {
    $result_ids[] = $result_id;
  }
  entity_delete_multiple('quiz_result', $result_ids);
}