/** * Connects to DB and inserts the user response. * @param $response (array) data we'll be saving to the response table * @return builds and returns a response message */ public function insert_response_quiz($response) { // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':quiz_id' => $response['quiz_id'], ':user_id' => $response['user_id'], ':quiz_viewed' => 1, ':response_quiz_created_at' => $response['response_quiz_updated_at'], ':response_quiz_updated_at' => $response['response_quiz_updated_at']); // write our SQL statement $sql = "INSERT INTO " . $pdo->response_quiz_table . " (\n quiz_id,\n user_id,\n quiz_viewed,\n response_quiz_created_at,\n response_quiz_updated_at\n )\n VALUES(\n :quiz_id,\n :user_id,\n :quiz_viewed,\n :response_quiz_created_at,\n :response_quiz_updated_at\n )"; // insert the mc_option into the database $stmt = $pdo->query($sql, $params); // success! if ($stmt !== false) { // add our response ID to the array we're working with $response['response_quiz_id'] = $pdo->lastInsertId(); // set-up our response array $return = array('response_quiz_id' => $response['response_quiz_id'], 'status' => 'success', 'action' => 'insert'); // merge the response arrays $return = array_merge($response, $return); } else { // handle errors $return['error'] = 'Save response failed.'; } // return response return $return; }
/** * Connects to DB and inserts the user response. * @param $response (array) data we'll be saving to the response table * @return builds and returns a response message */ protected function insert_response_mc($response) { // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':response_quiz_id' => $response['response_quiz_id'], ':response_question_id' => $response['response_question_id'], ':mc_option_id' => $response['question_response']); // write our SQL statement $sql = "INSERT INTO " . $pdo->response_mc_table . " (\n response_quiz_id,\n response_question_id,\n mc_option_id\n )\n VALUES(\n :response_quiz_id,\n :response_question_id,\n :mc_option_id\n )"; // insert the mc_option into the database $stmt = $pdo->query($sql, $params); // success! if ($stmt !== false) { // add our response ID to the array we're working with $response['response_mc_id'] = $pdo->lastInsertId(); // set-up our response array $response_response = array('response_mc_id' => $response['response_mc_id'], 'status' => 'success', 'action' => 'insert'); // see what type of question we're working on and save that response if ($response['question_type'] === 'mc') { // we added a mc_option successfully, let them know! return $response; } } else { // handle errors return false; } }
protected function insert_quiz_option($quiz_option) { // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':quiz_id' => parent::$quiz['quiz_id'], ':quiz_option_name' => $quiz_option, ':quiz_option_value' => parent::$quiz[$quiz_option]); // write our SQL statement $sql = "INSERT INTO " . $pdo->quiz_option_table . " (\n quiz_id,\n quiz_option_name,\n quiz_option_value\n )\n VALUES(\n :quiz_id,\n :quiz_option_name,\n :quiz_option_value\n )"; // insert the quiz into the database $stmt = $pdo->query($sql, $params); // success! if ($stmt !== false) { $quiz_option_id = $pdo->lastInsertId(); // set-up our response array $quiz_option_response = array('quiz_option_id' => $quiz_option_id, 'status' => 'success', 'action' => 'insert'); // pass the response array to our response object parent::$response_obj->set_quiz_option_response($quiz_option_response, $quiz_option); } else { self::$response_obj->add_error('Quiz option ' . $quiz_option . ' not be added to the database. Try again and if it continues to not work, send us an email with details of how you got to this error.'); } }
/** * Connects to DB and inserts the user response. * @param $response (array) data we'll be saving to the response table * @return builds and returns a response message */ private function insert_response_ab_test($ab_test_id, $response_quiz_id) { // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':ab_test_id' => $ab_test_id, ':response_quiz_id' => $response_quiz_id); $sql = "INSERT INTO " . $pdo->response_ab_test_table . " (\n response_quiz_id,\n ab_test_id\n )\n VALUES(\n :response_quiz_id,\n :ab_test_id\n )"; // update the question view the database $stmt = $pdo->query($sql, $params); // success! if ($stmt !== false) { // set-up our response array $return = array('result_ab_test_id' => $pdo->lastInsertId(), 'status' => 'success', 'action' => 'insert_ab_test_result'); // merge the response arrays self::$return = array_merge($return, self::$return); // see what type of question we're working on and save that response } else { // handle errors self::$return['error'][] = 'Insert ab_test_result_id failed.'; } // return response return self::$return; }
/** * Connects to DB and inserts the question. * @param $question = formatted question array * @param $quiz_id = which quiz this question goes with * @return builds and returns a response message */ protected function insert_question() { // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':quiz_id' => parent::$quiz['quiz_id'], ':question_title' => self::$question['question_title'], ':question_image' => self::$question['question_image'], ':question_image_alt' => self::$question['question_image_alt'], ':question_type' => self::$question['question_type'], ':question_explanation' => self::$question['question_explanation'], ':question_order' => self::$question['question_order']); // write our SQL statement $sql = "INSERT INTO " . $pdo->question_table . " (\n quiz_id,\n question_title,\n question_image,\n question_image_alt,\n question_type,\n question_explanation,\n question_order\n )\n VALUES(\n :quiz_id,\n :question_title,\n :question_image,\n :question_image_alt,\n :question_type,\n :question_explanation,\n :question_order\n )"; // insert the question into the database $stmt = $pdo->query($sql, $params); // success! if ($stmt !== false) { self::$question['question_id'] = $pdo->lastInsertId(); // set-up our response array $question_response = array('status' => 'success', 'action' => 'insert'); $question_response = array_merge($this->build_question_response(), $question_response); // pass the response array to our response object parent::$response_obj->set_question_response($question_response, self::$question); // SUCCESS MESSAGES // see if we we're adding a mc_option in here... if (self::$user_action_action === 'add' && self::$user_action_element === 'question') { // we added a mc_option successfully, let them know! parent::$response_obj->add_success('Question added.'); } // pass the question on to save_mc_option or save_slider // add the question_id to the questions array $this->save_question_type_options(); } else { parent::$response_obj->add_error('Question number ' . $question['question_order'] . ' could not be added to the database. Try again and if it continues to not work, send us an email with details of how you got to this error.'); } }
/** * Connects to DB and inserts the mc_option. * @param $mc_option = formatted mc_option array * @param $question_id = which quiz this mc_option goes with * @return builds and returns a response message */ protected function insert_mc_option() { // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':question_id' => parent::$question['question_id'], ':mc_option_content' => self::$mc_option['mc_option_content'], ':mc_option_correct' => self::$mc_option['mc_option_correct'], ':mc_option_order' => self::$mc_option['mc_option_order']); // write our SQL statement $sql = "INSERT INTO " . $pdo->question_mc_option_table . " (\n question_id,\n mc_option_content,\n mc_option_correct,\n mc_option_order\n )\n VALUES(\n :question_id,\n :mc_option_content,\n :mc_option_correct,\n :mc_option_order\n )"; // insert the mc_option into the database $stmt = $pdo->query($sql, $params); // success! if ($stmt !== false) { // set-up our response array $mc_option_response = array('mc_option_id' => $pdo->lastInsertId(), 'status' => 'success', 'action' => 'insert'); // pass the response array to our response object parent::$response_obj->set_mc_option_response($mc_option_response, parent::$question, self::$mc_option); // see if we we're adding a mc_option in here... if (self::$user_action_action === 'add' && self::$user_action_element === 'mc_option') { // we added a mc_option successfully, let them know! parent::$response_obj->add_success('Multiple Choice option added to Question #' . (parent::$question['question_order'] + 1) . '.'); } } else { parent::$response_obj->add_error('Question #' . (parent::$question['question_order'] + 1) . ' could not add a Multiple Choice Option.'); } }
/** * Insert a new AB Test into the database * @param $ab_test (array) full info on data to insert a new AB Test * @return response (array) */ private function insert_ab_test($ab_test) { $valid = $this->validate_submitted_ab_test_quizzes($ab_test); if ($valid !== true) { return false; } // try saving // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':ab_test_title' => $ab_test['ab_test_title'], ':quiz_id_a' => $ab_test['quiz_id_a'], ':quiz_id_b' => $ab_test['quiz_id_b'], ':ab_test_owner' => $ab_test['ab_test_owner'], ':ab_test_created_by' => $ab_test['ab_test_created_by'], ':ab_test_created_at' => $ab_test['ab_test_created_at'], ':ab_test_updated_by' => $ab_test['ab_test_updated_by'], ':ab_test_updated_at' => $ab_test['ab_test_updated_at']); // write our SQL statement $sql = "INSERT INTO " . $pdo->ab_test_table . " (\n ab_test_title,\n quiz_id_a,\n quiz_id_b,\n ab_test_owner,\n ab_test_created_by,\n ab_test_created_at,\n ab_test_updated_by,\n ab_test_updated_at\n )\n VALUES(\n :ab_test_title,\n :quiz_id_a,\n :quiz_id_b,\n :ab_test_owner,\n :ab_test_created_by,\n :ab_test_created_at,\n :ab_test_updated_by,\n :ab_test_updated_at\n )"; // insert the quiz into the database $stmt = $pdo->query($sql, $params); $this->response['action'] = 'insert'; // success! if ($stmt !== false) { // set the ab test id $this->ab_test['ab_test_id'] = $pdo->lastInsertId(); // build our response stuff $this->response['ab_test_id'] = $this->ab_test['ab_test_id']; $this->response['status'] = 'success'; $this->add_success('AB Test created.'); } else { $this->response['status'] = 'error'; $this->response['ab_test_id'] = 0; $this->add_error('Quiz could not be added to the database. Try again and if it continues to not work, send us an email with details of how you got to this error.'); } return $this->response; }
/** * Connects to DB and inserts the quiz. * @return builds and returns a response message */ protected function insert_quiz() { // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':quiz_title' => self::$quiz['quiz_title'], ':quiz_status' => self::$quiz['quiz_status'], ':quiz_finish_message' => self::$quiz['quiz_finish_message'], ':quiz_owner' => self::$quiz['quiz_owner'], ':quiz_created_by' => self::$quiz['quiz_created_by'], ':quiz_created_at' => self::$quiz['quiz_created_at'], ':quiz_updated_by' => self::$quiz['quiz_updated_by'], ':quiz_updated_at' => self::$quiz['quiz_updated_at'], ':quiz_is_deleted' => self::$quiz['quiz_is_deleted']); // write our SQL statement $sql = "INSERT INTO " . $pdo->quiz_table . " (\n quiz_title,\n quiz_status,\n quiz_finish_message,\n quiz_owner,\n quiz_created_by,\n quiz_created_at,\n quiz_updated_by,\n quiz_updated_at,\n quiz_is_deleted\n )\n VALUES(\n :quiz_title,\n :quiz_status,\n :quiz_finish_message,\n :quiz_owner,\n :quiz_created_by,\n :quiz_created_at,\n :quiz_updated_by,\n :quiz_updated_at,\n :quiz_is_deleted\n )"; // insert the quiz into the database $stmt = $pdo->query($sql, $params); // success! if ($stmt !== false) { self::$quiz['quiz_id'] = $pdo->lastInsertId(); self::$response_obj->set_status('success'); self::$response_obj->set_action('insert'); self::$response_obj->add_success('Quiz created.'); // build a full response object self::$response_obj->set_quiz_response(self::$quiz); } else { self::$response_obj->add_error('Quiz could not be added to the database. Try again and if it continues to not work, send us an email with details of how you got to this error.'); } }
/** * Connects to DB and inserts the slider. * @param $slider = formatted slider array * @param $question_id = which quiz this slider goes with * @return builds and returns a response message */ protected function insert_slider() { // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':question_id' => parent::$question['question_id'], ':slider_range_high' => self::$slider['slider_range_high'], ':slider_range_low' => self::$slider['slider_range_low'], ':slider_correct_high' => self::$slider['slider_correct_high'], ':slider_correct_low' => self::$slider['slider_correct_low'], ':slider_increment' => self::$slider['slider_increment'], ':slider_prefix' => self::$slider['slider_prefix'], ':slider_suffix' => self::$slider['slider_suffix']); // write our SQL statement $sql = "INSERT INTO " . $pdo->question_slider_table . " (\n question_id,\n slider_range_low,\n slider_range_high,\n slider_correct_low,\n slider_correct_high,\n slider_increment,\n slider_prefix,\n slider_suffix\n )\n VALUES(\n :question_id,\n :slider_range_low,\n :slider_range_high,\n :slider_correct_low,\n :slider_correct_high,\n :slider_increment,\n :slider_prefix,\n :slider_suffix\n )"; // insert the slider into the database $stmt = $pdo->query($sql, $params); // success! if ($stmt !== false) { // set-up our response array $slider_response = array('slider_id' => $pdo->lastInsertId(), 'status' => 'success', 'action' => 'insert'); $slider_response = array_merge(self::$slider, $slider_response); // pass the response array to our response object parent::$response_obj->set_slider_response($slider_response, parent::$question); // see if we we're adding a slider in here... if (self::$user_action_action === 'add' && self::$user_action_element === 'slider') { // we added a slider successfully, let them know! parent::$response_obj->add_success('Slider added to Question #' . (parent::$question['question_order'] + 1) . '.'); } } else { parent::$response_obj->add_error('Question #' . (parent::$question['question_order'] + 1) . ' could not add a Slider.'); } }