function quiz_data_update_2 in Quiz 5.2
Updates data from quiz 1.1.
1 call to quiz_data_update_2()
- quiz_update_2 in ./
quiz.install - Implementation of hook_update_N().
File
- ./
quiz.install, line 534
Code
function quiz_data_update_2() {
$results = db_query("SELECT * FROM {quiz}");
while ($row = db_fetch_object($results)) {
$nid = $row->nid;
$number_of_random_questions = 0;
$pass_rate = $row->pass_rate;
$summary_pass = $row->summary_pass;
$summary_default = $row->summary_default;
$shuffle = $row->shuffle;
$backwards_navigation = $row->backwards_navigation;
$feedback_time = $row->feedback_time;
$quiz_open = $row->quiz_open;
$quiz_close = $row->quiz_close;
$takes = $row->takes;
$time_limit = $row->time_limit;
$quiz_always = $row->quiz_always;
$node = node_load($nid);
$vid = $node->vid;
$tid = $node->tid;
$sql = "INSERT INTO {quiz_node_properties} " . "(vid, nid, number_of_random_questions, shuffle, quiz_open, quiz_close, takes, pass_rate, " . "summary_pass, summary_default, quiz_always, feedback_time, tid) " . "VALUES(%d, %d, %d, %d, %d, %d, %d, %d, '%s', '%s', %d, %d, %d)";
db_query($sql, $vid, $nid, $number_of_random_questions, $shuffle, $quiz_open, $quiz_close, $takes, $pass_rate, $summary_pass, $summary_default, $quiz_always, $feedback_time, $tid);
}
$results = db_query("SELECT * FROM {quiz_question_answer}");
while ($row = db_fetch_object($results)) {
$question_nid = $row->question_nid;
$answer = $row->answer;
$feedback = $row->feedback;
$points = $row->points;
$result_option = $row->result_option;
$node = node_load($question_nid);
$vid = $node->vid;
$is_correct = $points;
db_query("INSERT INTO {quiz_multichoice_answers} (nid, vid, answer, feedback, result_option, is_correct) " . "VALUES(%d, %d, '%s', '%s', %d, %d)", $question_nid, $vid, $answer, $feedback, $result_option, $is_correct);
}
$results = db_query("SELECT * FROM {quiz_questions}");
while ($row = db_fetch_object($results)) {
$parent_nid = $row->quiz_nid;
$child_nid = $row->question_nid;
$parent = node_load($parent_nid);
$parent_vid = $parent->vid;
$child = node_load($child_nid);
$child_vid = $child->vid;
$question_status = $row->question_status;
db_query("INSERT INTO {quiz_node_relationship} (parent_nid, parent_vid, child_nid, child_vid, question_status) " . "VALUES (%d, %d, %d, %d, %d)", $parent_nid, $parent_vid, $child_nid, $child_vid, $question_status);
}
$results = db_query("SELECT nid, properties FROM {quiz_question}");
while ($row = db_fetch_object($results)) {
$count = 0;
$nid = $row->nid;
$count = db_result(db_query("SELECT COUNT(aid) FROM {quiz_question_answer} WHERE question_nid = %d AND points = 1 ", $nid));
db_query("INSERT INTO {quiz_node_question_properties} (nid, vid, number_of_answers) " . "VALUES (%d, %d, %d)", $nid, $vid, $count);
}
$results = db_query("SELECT * FROM {quiz_result}");
while ($row = db_fetch_object($results)) {
$rid = $row->rid;
$quiz_nid = $row->quiz_nid;
$quiz = node_load($quiz_nid);
$quiz_vid = $quiz->vid;
$uid = $row->uid;
$time_start = $row->time_start;
$time_end = $row->time_end;
$released = $row->released;
$score = $row->score;
db_query("INSERT INTO {quiz_node_results} (nid, vid, uid, time_start, time_end, released, score) " . "VALUES (%d, %d, %d, %d, %d, %d, %d)", $nid, $vid, $uid, $time_start, $time_end, $released, $score);
$results2 = db_query("SELECT * FROM {quiz_question_results} WHERE result_rid=%d", $rid);
while ($row2 = db_fetch_object($results2)) {
$result_rid = $row2->result_rid;
$question_nid = $row2->question_nid;
$answer = $row2->answer;
$temp_answers = unserialize($answer);
$tried = $temp_answers['tried'][0];
foreach ($temp_answers['answers'] as $line) {
$aid = $line['aid'];
if ($aid == $tried) {
$question_nid = $line['question_nid'];
$question = node_load($question_nid);
$question_vid = $question->vid;
$is_correct = $line['points'];
$points_awarded = $line['points'];
$answer_timestamp = time();
db_query("INSERT INTO {quiz_multichoice_user_answers} (question_nid, question_vid, result_id, answer_id) " . "VALUES (%d, %d, %d, %d)", $question_nid, $question_vid, $rid, $aid);
db_query("INSERT INTO {quiz_node_results_answers} " . "(result_id, question_nid, question_vid, is_correct, points_awarded, answer_timestamp) " . "VALUES (%d, %d, %d, %d, %d, %d)", $rid, $question_nid, $question_vid, $is_correct, $points_awarded, $answer_timestamp);
}
/* endif */
}
/* end foreach */
}
/* end while */
}
/* end while */
switch ($GLOBALS['db_type']) {
case 'mysql':
case 'mysqli':
$select_questionanswer = db_query("SELECT name,id FROM {sequences} WHERE name='%s'", '({quiz_multichoice_answers}_answer_id');
$results = db_fetch_object($select_questionanswer);
if ($results->id > 0) {
$old_value = db_fetch_object(db_query("SELECT name,id FROM {sequences} WHERE name='%s'", '{quiz_question_answer}_aid'));
$value = $results->id + $old_value->id;
db_query("UPDATE {sequences} SET id = %d, WHERE name = '%d'", $value, '{quiz_multichoice_answers}_answer_id');
}
else {
$old_value = db_fetch_object(db_query("SELECT name,id FROM {sequences} WHERE name='%s'", '{quiz_question_answer}_aid'));
$value = $old_value->id;
db_query("INSERT INTO {sequences} (name,id) VALUES('%s',%d)", '{quiz_multichoice_answers}_answer_id', $value);
}
$select_questionanswer = db_query("SELECT name,id FROM {sequences} WHERE name='%s'", '{quiz_node_results}_result_id');
$results = db_fetch_object($select_questionanswer);
if ($results->id > 0) {
$old_value = db_fetch_object(db_query("SELECT name,id FROM {sequences} WHERE name='%s'", '{quiz_results}_rid'));
$value = $results->id + $old_value->id;
db_query("UPDATE {sequences} SET id = %d, WHERE name = '%d'", $value, '{quiz_node_results}_result_id');
}
else {
$old_value = db_fetch_object(db_query("SELECT name,id FROM {sequences} WHERE name='%s'", '{quiz_results}_rid'));
$value = $old_value->id;
db_query("INSERT INTO {sequences} (name,id) VALUES('%s',%d)", '{quiz_node_results}_result_id', $value);
}
break;
case 'pgsql':
// {quiz_multichoice_answers}_answer_id_seq
$select = db_query("SELECT max(answer_id) AS id FROM {quiz_multichoice_answers}");
$results = db_fetch_object($select);
if ($results->id > 0) {
db_query("SELECT setval('%s',%d)", '{quiz_multichoice_answers}_answer_id_seq', $results->id);
}
// {quiz_node_properties}_property_id_seq
$select = db_query("SELECT max(property_id) AS id FROM {quiz_node_properties}");
$results = db_fetch_object($select);
if ($results->id > 0) {
db_query("SELECT setval('%s',%d)", '{quiz_node_properties}_property_id_seq', $results->id);
}
// {quiz_node_result_options}_option_id_seq
$select = db_query("SELECT max(option_id) AS id FROM {quiz_node_result_options}");
$results = db_fetch_object($select);
if ($results->id > 0) {
db_query("SELECT setval('%s',%d)", '{quiz_node_result_options}_option_id_seq', $results->id);
}
// {quiz_node_results}_result_id_seq
$select = db_query("SELECT max(result_id) AS id FROM {quiz_node_results}");
$results = db_fetch_object($select);
if ($results->id > 0) {
db_query("SELECT setval('%s',%d)", '{quiz_node_results}_result_id_seq', $results->id);
}
break;
}
/* end switch */
}