query('SELECT COUNT(*) FROM "Questions"')['data'][0]['count']; // Return $count random, non repeating numbers in range from $min to $max. function random_numbers($min, $max, $count){ $numbers = range($min, $max); shuffle($numbers); return array_slice($numbers, 0, $count-1); } if($uid == '') { $error = 12103; } else if($length == 0) { $error = 12101; } else if($length > $questions_count) { $error = 12102; $values = array($questions_count); } else { // Delete existing game for user. if($db->query('SELECT EXISTS (SELECT 1 FROM "Games" WHERE "ID" = $1)', array($uid))['data'][0]['exists'] == 't') { $db->query('DELETE FROM "Games" WHERE "ID" = $1', array($uid)); } // Create new game for user. $db->query('INSERT INTO "Games" ("ID") VALUES ($1)', array($uid)); print_r(pg_last_error()); // Find questions for new game and insert into table. $questions = random_numbers(0, $questions_count-1, $length); foreach($questions as $question) { $q = $db->query('SELECT "ID" FROM "Questions" OFFSET $1 LIMIT 1', array($question))['data'][0]['ID']; $db->query('INSERT INTO "GamesQuestions" ("Games_ID", "Questions_ID") VALUES ($1, $2)', array($uid, $q)); } } $next_question = Question::get_next_question($db, $uid); $data = array('next' => $next_question); $response = Database::create_response($data, $error, $values); print_r($response); ?>