javascript - 如何为 "type"测验创建 MySQL 数据库

标签 javascript mysql database

我是 HTML/PHP/JavaScript/MySQL 新手。我有一个用 JS 和 HTML 编写的测验,但我想我需要一个包含所有问题和答案的数据库。我正在使用 PHPmyAdmin 创建数据库和表。

我的测验是类型测验,有点像“你是哪种类型的____?” (例如颜色、狗、个性)因此,我的任何问题都没有 1 个真正正确的答案。

我不确定该测验的数据库中应包含哪些内容才能运行。 如果对您有帮助,我将包含我的代码框架。如果这看起来含糊不清,我深表歉意。

JavaScript

<head>
<title>Questions</title>
<script language="Javascript">

function process()
{
var Ans1 = 0;
var Ans3 = 0;
var Ans4 = 0;
var Ans2 = 0;

var f = document.f;
var i = 0;

for (i = 0; i < f.q1.length; i++) if (f.q1[i].checked) value = f.q1[i].value;
    if (value == "1") { Ans3++; } <!--put in order with least likely answer first-->
    if (value == "2") { Ans4++; }
    if (value == "3") { Ans2++; }
    if (value == "4") { Ans1++; }

for (i = 0; i < f.q2.length; i++) if (f.q2[i].checked) value = f.q2[i].value;
    if (value == "1") { Ans3++; } <!--put in order with least likely answer first-->
    if (value == "2") { Ans4++; }
    if (value == "3") { Ans2++; }
    if (value == "4") { Ans1++; }

for (i = 0; i < f.q3.length; i++) if (f.q3[i].checked) value = f.q3[i].value;
    if (value == "1") { Ans3++; } <!--put in order with least likely answer first-->
    if (value == "2") { Ans4++; }
    if (value == "3") { Ans2++; }
    if (value == "4") { Ans1++; }

<!--Copy the above for loop for all subsequent questions, if needed-->

var out = "Ans1"; )<!--default value, Ans1-->
i = Ans1;

if (Ans4 > i) { out ="Ans4"; i = Ans4; } <!--ex. out = "Ans4"; i="Result4";-->
if (Ans3 > i) { out ="Ans3"; i = Ans3; }
if (Ans2 > i) { out ="Ans2"; i = Ans2; } <!--ex. out = "Ans3"; i="Result2";-->
location.href = out + ".shtml"; <!--I believe this should display results page, based on your computed result -->
}

function err(msg, url, line)
{
location.href = "error.html";
}

//window.onerror = err;
// -->
</script>
</head>

HTML 测验问题/答案选项

<body>
<?php include ('SiteMenu'); ?>
Answer the questions below...

<form name="f">

<b>What is your answer to question #1?<br></b>
    <input type="radio" name="q1" value="4">Ans1.<br>
    <input type="radio" name="q1" value="1">Ans3.<br>
    <input type="radio" name="q1" value="2">Ans4.<br>
    <input type="radio" name="q1" value="3">Ans2.<br><br>

<b>What is your answer to question #2?<br></b>
    <input type="radio" name="q2" value="2">Ans4.<br>       
    <input type="radio" name="q2" value="4">Ans1.<br>
    <input type="radio" name="q2" value="1">Ans3.<br>
    <input type="radio" name="q2" value="3">Ans2.<br><br>

<b>What is your answer to question #3?<br></b>
    <input type="radio" name="q3" value="4">Ans1.<br>
    <input type="radio" name="q3" value="1">Ans3.<br>
    <input type="radio" name="q3" value="2">Ans4.<br>
    <input type="radio" name="q3" value="3">Ans2.<br><br>

<!--Input more questions, if needed, here-->

Thank you for taking our quiz! <br>
<input type="button" value="Find my Result!" onclick="process();"><br><br>
</form>
</body>
</html> 

更新: 好的。抱歉,只是想更好地理解如何输入表格。这就是我想你的意思? 我的数据库中有 2 个表:问题和答案 在问题表中,它看起来像:

qID      aID      qText
q1                What is your favorite color?
q2                This is the second question

等等

然后,我的答案表看起来像

qID      valID      aText
q1                  Green
q1                  Blue
q1                  Red
q2                  question 2 answer choice1
q2                  question 2 answer choice2

等等

最佳答案

好吧,基本上你想要

Questions, ID and Text
Choices ID, QuestionID and the text

答案只是

QuestionID, ChoiceID


Questions Table
Id Text 
1  'What is your favourite colour?'

Choices Table
Id, QuestionID, Text
1   1           'Red'
2   1           'Blue'
3   1           'Green'
4   1           'Pale Blue Green with yellow dots'

Answers
VictimID QuestionID ChoiceID
(userID?)1          4

关于javascript - 如何为 "type"测验创建 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23069422/

相关文章:

javascript - 如何在多对多关系中使用复选框?

python - 自动完成什么都不做。怎么了?

mysql - 在 mysql 4.0 中获取 innodb 表行数的最快方法是什么?

database - 分配给 SQLite 内存数据库的内存大小

javascript - 捕获被拒绝的 Promise 后出现 UnhandledPromiseRejectionWarning

javascript - 将 jQuery 插件链接到 html

javascript - Node.js 视频上传获取Codec

MYSQL-从两个表连接并显示一列的不同数据

mysql - 在列为 varchar 的一个值中存储大量文本(数据库)

mysql - 相当于从多个文件读取数据的快速数据库是什么?