/** * Connects to DB and increase the quiz finishes by one. * @param $response (array) data we'll be saving to the response table * @return builds and returns a response message */ public function update_quiz_finishes($new_score) { // connect to PDO $pdo = new enp_quiz_Db(); // Get our Parameters ready $params = array(':quiz_id' => self::$quiz->get_quiz_id(), ':new_score' => $new_score); // write our SQL statement $sql = "UPDATE " . $pdo->quiz_table . "\n SET quiz_score_average = (quiz_finishes * quiz_score_average + :new_score) / (quiz_finishes + 1),\n quiz_finishes = quiz_finishes + 1\n WHERE quiz_id = :quiz_id"; // update the question finishes the database $stmt = $pdo->query($sql, $params); // success! if ($stmt !== false) { // set-up our response array $return = array('quiz_id' => self::$quiz->get_quiz_id(), 'status' => 'success', 'action' => 'update_quiz_finishes'); // 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'][] = 'Update quiz finishes failed.'; } // return response return self::$return; }