//test has been created successfully, or test ID for update is there //insert containers: $db_containers = array(); //will hold mapping of object ID to database ID (needed for insertion of solutions) for ($i = 0; $i < $test_data['containers']['counter']; $i++) { $container = $test_data['containers']['objects'][$i]; $db_containers[$i] = $container['db_id']; //mapping to current ID (will hold null if new container, updated below) if ($container['deleted'] == 'false') { //NEW CONTAINER: if ($container['newly_created'] == 'true') { $container_id = $db_con->insertEntry(false, 'dragdrop_containers', array("container_test_ID" => $test_id, "container_text" => $container['container_text'])); $db_containers[$i] = $container_id; } else { if ($container['edited'] == 'true') { $db_con->updateEntry(false, 'dragdrop_containers', array("container_text" => $container['container_text']), array("where" => "container_ID = " . $container['db_id'])); } } //else if } else { if ($container['newly_created'] == 'false') { $db_con->deleteEntries(false, 'dragdrop_containers', array("where" => "container_ID = " . $container['db_id'])); } } //else } //for //insert items: for ($i = 0; $i < $test_data['items']['counter']; $i++) { $item = $test_data['items']['objects'][$i]; if ($item['deleted'] == 'false') {
$question_b = $test_data['questions']['objects'][$j]; if ($question_b['current_id'] != $question['current_id'] && $question_b['added_from_db'] == "true" && $question_b['db_id'] == $question['db_id'] && $question_b['edited'] == "false") { $save_to_change = false; } //if } //for } //else if (!$save_to_change) { //original question is still needed -> delete lookup and insert as new question $db_con->deleteEntries(false, 'dynmc_lookup', array("where" => "lookup_question_ID = " . $question['db_id'], "and" => "lookup_test_ID = " . $test_id, "limit" => "1")); insertNewQuestion($question, $test_id); } else { //question only belongs to this test once -> update $db_con->updateEntry(false, 'dynmc_questions', array("question_text" => $question['question_text'], "question_correct_answer" => $question['correct_answer']), array("where" => "question_ID = " . $question['db_id'])); $db_con->deleteEntries(false, 'dynmc_incorrect', array("where" => "incorrect_question_ID = " . $question['db_id'])); for ($j = 0; $j < sizeof($question['incorrect_answers']); $j++) { $db_con->insertEntry(false, 'dynmc_incorrect', array("incorrect_text" => $question['incorrect_answers'][$j], "incorrect_question_ID" => $question['db_id'])); } //for } //else } } } //else if } else { //deleted question if ($question['newly_created'] == 'false' && $question['added_from_db'] == 'false') { //DELETED QUESTION:
} else { $test_id = $_POST['save_test']['test_ID']; updateTestGeneral($_POST['save_test']); } //else $db_con = new Db_Connection(); $test_data = $_POST['test_data']; $error = ''; if (is_numeric($test_id)) { //test has been created successfully, or test ID for update is there //GRID OF NEW TEST: if ($_POST['action'] == 'new') { $db_con->insertEntry(false, 'crossword_grid', array("grid_test_ID" => $test_id, "grid_x" => $test_data['grid']['x'], "grid_y" => $test_data['grid']['y'])); } else { if ($test_data['grid']['edited'] == 'true') { $db_con->updateEntry(false, 'crossword_grid', array("grid_x" => $test_data['grid']['x'], "grid_y" => $test_data['grid']['y']), array("where" => "grid_test_ID = " . $test_id)); } } //else if for ($i = 0; $i < $test_data['questions']['counter']; $i++) { $question = $test_data['questions']['objects'][$i]; if ($question['deleted'] == 'false' && $question['number'] != 'null') { //word has not been deleted and has been placed //NEW QUESTION: if ($question['newly_created'] == 'true') { $question_id = $db_con->insertEntry(false, 'crossword_questions', array("question_test_ID" => $test_id, "question_text" => $question['question_text'], "question_correct_answer" => $question['correct_answer'], "question_position_x" => $question['position']['x'], "question_position_y" => $question['position']['y'], "question_orientation" => $question['position']['orientation'], "question_number" => $question['number'])); } else { if ($question['edited'] == 'true') { $db_con->updateEntry(false, 'crossword_questions', array("question_text" => $question['question_text'], "question_correct_answer" => $question['correct_answer'], "question_position_x" => $question['position']['x'], "question_position_y" => $question['position']['y'], "question_orientation" => $question['position']['orientation'], "question_number" => $question['number']), array("where" => "question_ID = " . $question['db_id'])); } }