code restructured
This commit is contained in:
48
start.php
48
start.php
@@ -10,11 +10,17 @@ require_once('includes.inc.php');
|
||||
$data = '';
|
||||
$error = 0;
|
||||
$values = null;
|
||||
$uid = isset($_GET['uid']) ? $_GET['uid'] : '';
|
||||
$length = isset($_GET['length']) ? $_GET['length'] : '';
|
||||
$length = (($length === '0') || ($length && gettype(+$length) == 'integer')) ? +$_GET['length'] : 10;
|
||||
$uid = isset($_GET['uid']) ?
|
||||
$_GET['uid'] : '';
|
||||
$length = isset($_GET['length']) ?
|
||||
$_GET['length'] : '';
|
||||
$length = (($length === '0') || ($length && gettype(+$length) == 'integer')) ?
|
||||
+$_GET['length'] : 10;
|
||||
$db = new Database();
|
||||
$questions_count = $db->query('SELECT COUNT(*) FROM "Questions"')['data'][0]['count'];
|
||||
$questions_count = $db->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){
|
||||
@@ -32,19 +38,43 @@ if($uid == '') {
|
||||
$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));
|
||||
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));
|
||||
$db->query(
|
||||
'INSERT INTO "Games" ("ID")
|
||||
VALUES ($1)',
|
||||
array($uid));
|
||||
if(preg_match('/violates foreign key constraint "Games_ID_fkey"/', pg_last_error()) == 1) {
|
||||
$error = 12104;
|
||||
}
|
||||
// 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));
|
||||
$qid = $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, $qid));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user