动态测验应用程序答案PHP中的验证问题

时间:2015-07-22 05:47:42

标签: php mysql arrays database

我有一个这种结构的数据库我有4个问题。我的工作是显示2个随机问题及其选项,当用户点击提交时,应检查correct_ans并显示结果。

Qid | Question | A | B | C | D | Correct_ans
1   | Question |   |   |   |   |Correct Ans
2   | Question |   |   |   |   |Correct Ans
3   | Question |   |   |   |   |Correct Ans
4   | Question |   |   |   |   |Correct Ans

这是我的代码

<?php
if(isset($_POST['test'])){
$x = $_POST["$id"];
echo $x;
}
?>
<html>
<head>
</head>
<body>

<?php 
include("db-con.php");
$sql1 = "SELECT * from questions ORDER BY RAND() LIMIT 2";
$result1 = mysql_query($sql1,$con);

    echo"<form method='post' action=''>";
    while($row1 = mysql_fetch_assoc($result1))
    {
         $id = 'q' . $row1['quesid'];
         $question = $row1['question'];
         $solution = $row1['solution'];
         $ans_array = array($row1['A'],$row1['X'],$row1['Y'],$row1['Z']);
         $test = shuffle($ans_array);
    // Generate Questions and Display Options   

        echo $question . '<br />';
        echo "<input type='radio' value='$ans_array[0]' name=\"$id\" />" . $ans_array[0]. '<br />';
        echo "<input type='radio' value='$ans_array[1]' name=\"$id\" />" . $ans_array[1] .  '<br />';
        echo "<input type='radio' value='$ans_array[2]' name=\"$id\" />" . $ans_array[2] .  '<br />';
        echo "<input type='radio' value='$ans_array[3]' name=\"$id\" />" . $ans_array[3] .  '<br />';

     }
    echo"<input type='submit' name='test' Value='Submit' />";
    echo"</form>";


?>


</body>
</html>

我的问题是

当我点击提交时,我无法获得问题ID而无法从数据库中检查。当我尝试访问$id以检查所选答案时,我总是遇到索引错误。

如果我理解正确$id不是全局变量,那就是我在提交表单后没有得到它的原因。我试图将$id作为全局但同样的错误。

任何人都可以帮我找到这个解决方案。

谢谢&amp;问候 货车

1 个答案:

答案 0 :(得分:1)

下面的代码是生成随机问题。这将选择随机问题。

function randomGen($min, $max, $quantity) 
{    
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}

$a = (randomGen(1,4,3)); //generates 2 unique random numbers


for($i=1;$i<=2;$i++){
  $q = $a[$i];    
}

并且要检索ID,您必须添加隐藏字段

&#13;
&#13;
<input type="hidden" name="id" id="id" value="value of id whicch is generated by random number">
&#13;
&#13;
&#13;