Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中5个随机选择题的答案_Php - Fatal编程技术网

php中5个随机选择题的答案

php中5个随机选择题的答案,php,Php,我试图构建一个Web应用程序,从数据库中生成5个随机问题以及4个可能的答案。每个问题都有自己的ID。当用户单击submit按钮时,它将指向result.php页面,其中显示正确答案的数量。我不知道如何将问题ID与数据库中的答案匹配,因为同时有5个问题(5张表格)。这是我到目前为止试过的 <script> function sender() { document.forms["form1"].submit(); document.form

我试图构建一个Web应用程序,从数据库中生成5个随机问题以及4个可能的答案。每个问题都有自己的ID。当用户单击submit按钮时,它将指向result.php页面,其中显示正确答案的数量。我不知道如何将问题ID与数据库中的答案匹配,因为同时有5个问题(5张表格)。这是我到目前为止试过的

            <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