php中5个随机选择题的答案
我试图构建一个Web应用程序,从数据库中生成5个随机问题以及4个可能的答案。每个问题都有自己的ID。当用户单击submit按钮时,它将指向result.php页面,其中显示正确答案的数量。我不知道如何将问题ID与数据库中的答案匹配,因为同时有5个问题(5张表格)。这是我到目前为止试过的php中5个随机选择题的答案,php,Php,我试图构建一个Web应用程序,从数据库中生成5个随机问题以及4个可能的答案。每个问题都有自己的ID。当用户单击submit按钮时,它将指向result.php页面,其中显示正确答案的数量。我不知道如何将问题ID与数据库中的答案匹配,因为同时有5个问题(5张表格)。这是我到目前为止试过的 <script> function sender() { document.forms["form1"].submit(); document.form
<script>
function sender() {
document.forms["form1"].submit();
document.forms["form2"].submit();
document.forms["form3"].submit();
document.forms["form4"].submit();
document.forms["form5"].submit();
return true;
}
</script>
<?php
include('db.php');
$sql = "SELECT * FROM quizzes ORDER BY rand() limit 5";
$result = mysql_query($sql);
while($data = mysql_fetch_array($result)){
echo '
<form id="form'.$i.'" action="result.php" method="post">
<table>
<tr><td>'.$data['content'].'</td></tr>
<tr><td><input type="radio" name="option" value="a">'.$data['a'].'</td></tr>
<tr><td><input type="radio" name="option" value="b">'.$data['b'].'</td></tr>
<tr><td><input type="radio" name="option" value="c">'.$data['c'].'</td></tr>
<tr><td><input type="radio" name="option" value="d">'.$data['d'].'</td></tr>
</table>
</form>
';
}}
echo '
<input type="button" value="Submit" onclick=javascript:sender()>
';
?>
函数发送器(){
document.forms[“form1”].submit();
文件。表格[“表格2”]。提交();
文件。表格[“表格3”]。提交();
文件。表格[“表格4”]。提交();
文件。表格[“表格5”]。提交();
返回true;
}
我更喜欢Herdoc语法,因此我在MYSQL\u fetch\u数组中使用MYSQL\u NUM
然后将问题ID添加到单选按钮的名称中
如果问题在id以外的列中编号,则使用id,例如
`SELECT `number`,`
如果“选项”后面的问题id不全是数字,请删除intval()
然后为每个答案查找问题:
foreach($answers as $id => $answer){
$sql = "SELECT .... WHERE `id` = $id"; //If non-numeric, add single quotes '$id'
}
更新
这应该是您的基本表单的外观:
<form action="result.php" method="post"><div>
<tr><td><input type="radio" name="option1" value="a">Answer A</td></tr>
...
<tr><td><input type="radio" name="option5" value="a">Answer D</td></tr>
<input type="submit" value="Submit" /></div></form>
您应该始终通过W3C HTML标记验证程序运行网页:
您需要将所有表单合并为一个表单,只需将表单标记放在while循环上方,还需要更改每个单选选项中的name属性,使其特定于多个选项集(即name=“option-”.$i.“
)@iamde\u coder我理解您的想法。但是如何为每个问题生成$i。顺便说一句,我试着把表单标签放在while循环的上面,但最后它还是得到了5个form,我只是尝试了一下,它对/result.php发出了一个POST请求。从HTTP请求头:POST/result.php HTTP/1.1
。单击“提交”时会发生什么情况`对不起,我知道我错了。我已经记下了你的答案。我可以问1个问题吗?在result.php中,我们如何传递“option$data[0]”以便与数据库中的答案链接我将现有的$answer
更改为复数$answers
需要避免使用MYSQL\u查询
。不要告诉我这是OP的代码。但看到你提起这件事,我会谦恭地表示不同意。我在现实生活中做的很多工作都是为了一个医学实验室。我的工作必须符合HIPAA标准,否则我将被罚款50000美元以上。是的,PHP贬低了MSQL,但我可以100%控制运行哪个版本的PHP和mySQL。我会选择一个没有安全漏洞的。MSQLi正在进行中,最近出现了一些非常严重的安全问题。领先优势?更像是流血边缘。谢谢你,但是我要远离PHP扩展,因为它会因为泄露机密的患者记录而被罚款
foreach($answers as $id => $answer){
$sql = "SELECT .... WHERE `id` = $id"; //If non-numeric, add single quotes '$id'
}
<form action="result.php" method="post"><div>
<tr><td><input type="radio" name="option1" value="a">Answer A</td></tr>
...
<tr><td><input type="radio" name="option5" value="a">Answer D</td></tr>
<input type="submit" value="Submit" /></div></form>
<form
<div></div>
</form