From 9f6e348e054e5aa28e99ba5861c4322108f263fd Mon Sep 17 00:00:00 2001 From: Daniel Mason Date: Sat, 31 Dec 2016 17:01:14 +1300 Subject: [PATCH] I give up for now --- includes/createDb.sql | 2 +- insert.php | 87 +++++++++++++----------- newinsert.php | 151 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 202 insertions(+), 38 deletions(-) create mode 100644 newinsert.php diff --git a/includes/createDb.sql b/includes/createDb.sql index a66f36b..7c16e3f 100755 --- a/includes/createDb.sql +++ b/includes/createDb.sql @@ -1,4 +1,4 @@ --- base sql +-- Creates an empty DB for your own questions/etc. CREATE TABLE IF NOT EXISTS `user` ( `user_id` INT(11) NOT NULL AUTO_INCREMENT, `user_time` INT(11) NOT NULL, diff --git a/insert.php b/insert.php index 006c37c..b163cae 100644 --- a/insert.php +++ b/insert.php @@ -1,11 +1,12 @@ $d) { @@ -21,7 +22,7 @@ foreach($files as $file) { preg_match('/".*?"/', $splitNewLine[0], $matches); $questions[$i]['image'] = strtoupper($matches[0]); - if (strpos($splitNewLine[1], ':') !== false || !empty(trim($splitNewLine[2]))) { + if (strpos($splitNewLine[1], ':') !== false && !empty(trim($splitNewLine[2]))) { $twoLineQuestion = true; } $cutOutImageShit = explode(">", $splitNewLine[1]); @@ -47,7 +48,7 @@ foreach($files as $file) { } $x = $b = 1; foreach ($splitNewLine as $a => $line) { - //Don't ask what this witchcraft is. + //Don't ask what this witchcraft is. I don't know either. if ($a == 0) continue; if (($twoLineQuestion || $imageFirstLine) && $a == 1) continue; if ($threeLineQuestion || ($twoLineQuestion && $imageFirstLine) && $a == 2) continue; @@ -67,39 +68,51 @@ foreach($files as $file) { $questions[$i - 1]['correctAnswer'] = substr($d, 3); } } - $i = $b = $d = $a = 0; //Clear the useless stuff from above. - if (isset($_REQUEST['insert']) && $_REQUEST['insert'] == 1 && count($questions)) { - $count = 0; - foreach ($questions as $q) { - $db = new db(); - $db->query("INSERT INTO question(question_time, questiondata_number, questiondata_content, questiondata_image) - VALUES(:qTime, :qNumber, :qContent, :qImage)"); - $db->bind("qTime", time()); - $db->bind("qNumber", $q['questionNumber'] ?: 0); - $db->bind("qContent", $q['question']); - $db->bind("qImage", $q['image'] ?: ""); - $db->execute(); - $lastRow = $db->lastInsertId(); - $db->kill(); //IS THIS EVEN NEEDED? - $row = 1; - foreach ($q['answers'] as $a) { - $db = new db(); - $db->query("INSERT INTO answer(answer_time, answerdata_content, answerdata_question, answerdata_correct) - VALUES(:aTime, :aContent, :aQuestion, :aCorrect)"); - $db->bind("aTime", time()); - $db->bind("aContent", $a); - $db->bind("aQuestion", $lastRow); - $db->bind("aCorrect", ($q['correctAnswer'] == $row ? "1" : "0")); - $db->execute(); - $db->kill(); - $row++; - } - $db = null; - $count++; - } - echo "Inserted " . $count . " questions."; - } else { - var_dump($questions); + + //CHECK ALL THE STUFF IS CORRECT. + foreach($questions as $q) { + $bad = false; + if(count($q['answers']) != 4) $bad = true; + if(!$q['correctAnswer']) $bad = true; + if(!$q['questionNumber']) $bad = true; + if(empty(trim($q['question']))) $bad = true; + foreach($q['answers'] as $a) { + if(empty(trim($a))) $bad = true; + } + if($bad) var_dump($q); } -} \ No newline at end of file + + $questionArray = array_merge($questionArray, $questions); + +} +exit(); +$i = $b = $d = $a = $count = 0; //Clear the useless stuff from above. +foreach ($questionArray as $q) { + $db = new db(); + $db->query("INSERT INTO question(question_time, questiondata_number, questiondata_content, questiondata_image) + VALUES(:qTime, :qNumber, :qContent, :qImage)"); + $db->bind("qTime", time()); + $db->bind("qNumber", $q['questionNumber'] ?: 0); + $db->bind("qContent", $q['question']); + $db->bind("qImage", $q['image'] ?: ""); + $db->execute(); + $lastRow = $db->lastInsertId(); + $db->kill(); //IS THIS EVEN NEEDED? + $row = 1; + foreach ($q['answers'] as $a) { + $db = new db(); + $db->query("INSERT INTO answer(answer_time, answerdata_content, answerdata_question, answerdata_correct) + VALUES(:aTime, :aContent, :aQuestion, :aCorrect)"); + $db->bind("aTime", time()); + $db->bind("aContent", $a); + $db->bind("aQuestion", $lastRow); + $db->bind("aCorrect", ($q['correctAnswer'] == $row ? "1" : "0")); + $db->execute(); + $db->kill(); + $row++; + } + $db = null; + $count++; +} +echo "Inserted " . $count . " questions."; \ No newline at end of file diff --git a/newinsert.php b/newinsert.php new file mode 100644 index 0000000..b003a7e --- /dev/null +++ b/newinsert.php @@ -0,0 +1,151 @@ + $d) { + if (empty($d)) continue; + if (strpos(strtolower($d), 'question') !== false) { + //PARSE THE QUESTION + $fullQuestion = substr(preg_replace('/^.+\n/', '', $d), 1); //Strip useless firstline. + $numbers = explode(" ", $fullQuestion); + $questions[$i]['questionNumber'] = $numbers[0]; // Get # of question + $lengthOfNumber = strlen($questions[$i]['questionNumber']); //Get length of # + $splitNewLine = explode("\n", trim($fullQuestion)); //Split rest into lines. + $twoLineQuestion = $imageFirstLine = $threeLineQuestion = false; + if (strpos(strtolower($splitNewLine[0]), '", $splitNewLine[1]); + $trashBin = array_shift($cutOutImageShit); + $firstLine = implode(" ", $cutOutImageShit); + $questions[$i]['question'] = trim(substr(($twoLineQuestion ? $firstLine . " " + . $splitNewLine[2] : $firstLine), $lengthOfNumber)); + } else { + if (strpos($splitNewLine[0], ':') !== false || !empty(trim($splitNewLine[1]))) { + if (strpos($splitNewLine[0], ':') !== false) { + if($questions[$i]['questionNumber'] == "10.2") error_log('here'); + + $twoLineQuestion = true; + if (strpos(strtolower($splitNewLine[1]), ' $line) { + //Don't ask what this witchcraft is. I don't know either. + if ($a == 0 || $skip) { + $skip = false; + continue; + } + if (($twoLineQuestion || $imageFirstLine) && $a == 1) continue; + if ($threeLineQuestion || ($twoLineQuestion && $imageFirstLine) && $a == 2) continue; + if ($imageFirstLine && $threeLineQuestion && $a == 3) continue; + if (empty(trim($line))) continue; + if (strpos(strtolower($line), 'totallines') !== false) continue; + + if (strpos(strtolower($line), 'Total questions:".$totalCount."
Good questions:".$goodCount."
Bad questions:".$badCount; +exit(); +$i = $b = $d = $a = $count = 0; //Clear the useless stuff from above. +foreach ($questionArray as $q) { + $db = new db(); + $db->query("INSERT INTO question(question_time, questiondata_number, questiondata_content, questiondata_image) + VALUES(:qTime, :qNumber, :qContent, :qImage)"); + $db->bind("qTime", time()); + $db->bind("qNumber", $q['questionNumber'] ?: 0); + $db->bind("qContent", $q['question']); + $db->bind("qImage", $q['image'] ?: ""); + $db->execute(); + $lastRow = $db->lastInsertId(); + $db->kill(); //IS THIS EVEN NEEDED? + $row = 1; + foreach ($q['answers'] as $a) { + $db = new db(); + $db->query("INSERT INTO answer(answer_time, answerdata_content, answerdata_question, answerdata_correct) + VALUES(:aTime, :aContent, :aQuestion, :aCorrect)"); + $db->bind("aTime", time()); + $db->bind("aContent", $a); + $db->bind("aQuestion", $lastRow); + $db->bind("aCorrect", ($q['correctAnswer'] == $row ? "1" : "0")); + $db->execute(); + $db->kill(); + $row++; + } + $db = null; + $count++; +} +echo "Inserted " . $count . " questions."; \ No newline at end of file