Php 在while循环中获取单选按钮值

Php 在while循环中获取单选按钮值,php,Php,我正在用PHP做一个简单的考试程序 这是我参加测验的代码,它还在测试中,所以不要介意它的设计 这是为参加测验的人准备的课程(这里没有问题): 因为这个原因,我只得到了考官第一题的答案。这不是一个循环,所以即使还有2-3个答案,我也只能得到一个答案 $stud_id = $_POST['s_id']; $quiz_id = $_POST['q_id']; $score = 0; $tbl_name2="a_quiz"; $sql2="SELECT * FROM $tbl_name2 WHERE

我正在用PHP做一个简单的考试程序

这是我参加测验的代码,它还在测试中,所以不要介意它的设计

这是为参加测验的人准备的课程(这里没有问题):

因为这个原因,我只得到了考官第一题的答案。这不是一个循环,所以即使还有2-3个答案,我也只能得到一个答案

$stud_id = $_POST['s_id'];
$quiz_id = $_POST['q_id'];
$score = 0;

$tbl_name2="a_quiz"; 
$sql2="SELECT * FROM $tbl_name2 WHERE q_id='$quiz_id'";
$result2=mysql_query($sql2);
while($rows=mysql_fetch_array($result2)){
    $q_question=$rows['q_question'];
    $question1 = $rows['answer'];

    echo $q_question;
    echo '<br>';
    echo $question1;
    echo '<br>';
    if(isset($_POST[$q_question])){
        $s_answer = $_POST[$q_question];
        echo $s_answer;
        if ($question1 == $s_answer){
            $score = $score + 1;
        }
    }
}
echo $score;
$stud\u id=$\u POST['s\u id'];
$quick\u id=$\u POST['q\u id'];
$score=0;
$tbl_name2=“a_测验”;
$sql2=“从$tbl\u name 2中选择*,其中q\u id='$quick\u id';
$result2=mysql\u查询($sql2);
而($rows=mysql\u fetch\u数组($result2)){
$q_question=$rows['q_question'];
$question1=$rows['answer'];
回应$q_问题;
回声“
”; 回声$1; 回声“
”; 如果(isset($\u POST[$q\u question])){ $s_-answer=$_-POST[$q_-question]; 回声$s_答案; 如果($question1==$s_答案){ $score=$score+1; } } } echo$score;
例如,我得到了第一个问题和第二个问题,我在第一个问题中选择了正确的答案,
$score++
,但是当我在第二个问题中的答案也是正确的时候,我不做
$score++


我这里的问题是:如何获得单选按钮的值,我在while循环中输出它们?我也需要做一个while循环来获得答案吗?如何操作?

首先,您使用每个问题作为单选按钮的名称属性,这远远不够完美。您可以考虑将一个列添加到表“AQQIZ”中,对于每个没有空间的问题(例如,问题1,问题2…),使用<强> >独特的<强>命名空间,并调用此列“命名空间”。

完成此操作后,问题循环应如下所示:

<?php
$score = 0;
$tbl_name2="a_quiz"; // Switch to table "forum_answer"
$sql2="SELECT * FROM $tbl_name2 WHERE q_id='$id'";
$result2=mysql_query($sql2);

while($rows=mysql_fetch_array($result2)){

    $q_question = $rows['q_question'];
    $namespace = $rows['namespace'];

?>

<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td><table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr style='overflow:hidden; word-wrap:break-word;'>
    <input type="text" name="q_id" value="<?php echo $rows['q_id'];?>">
<td bgcolor="lightgreen"><strong>Question:</strong></td>
<td bgcolor="lightgreen">:</td>
<td bgcolor="lightgreen" style="max-width: 1000px;"><?php echo $rows['q_question']; ?></td>
</tr>

<tr>
<td bgcolor="lightgreen"><strong>A</strong></td>
<td bgcolor="lightgreen">:</td>
<td bgcolor="lightgreen"><input type="radio" name="<?php echo $namespace; ?>" value="a"><?php echo $rows['a'] ?></td>
</tr>
<tr>
<td width="18%" bgcolor="lightgreen"><strong>B</strong></td>
<td width="5%" bgcolor="lightgreen">:</td>
<td width="77%" bgcolor="lightgreen"><input type="radio" name="<?php echo $namespace; ?>" value="b"><?php echo $rows['b'] ?></td>
</tr>
<tr>
<td width="18%" bgcolor="lightgreen"><strong>C</strong></td>
<td width="5%" bgcolor="lightgreen">:</td>
<td width="77%" bgcolor="lightgreen"><input type="radio" name="<?php echo $namespace; ?>" value="c"><?php echo $rows['c'] ?></td>
</tr>
<tr>
<td bgcolor="lightgreen"><strong>D</strong></td>
<td bgcolor="lightgreen">:</td>
<td bgcolor="lightgreen"><input type="radio" name="<?php echo $namespace; ?>" value="d"><?php echo $rows['d'] ?></td>
</tr>


</table></td>
</tr>
<hr>
</table><br>
 <?php
}
?>

A
:
B
:
C
:
D
:


然后,对于结果部分,使用以下代码:

$stud_id = (int)$_POST['s_id'];
$quiz_id = (int)$_POST['q_id'];
$score = 0;

$tbl_name2 = "a_quiz"; 

$sql2 = "SELECT * FROM $tbl_name2 WHERE q_id='$quiz_id'";
$result2 = mysql_query($sql2);

$result = '';

while($rows=mysql_fetch_array($result2)){

    $q_question = $rows['q_question'];
    $question1 = $rows['answer'];
    $namespace = $rows['namespace'];

    $result .= $q_question;
    $result .= <br>;
    $result .= $question1;
    $result .= <br>;

    if(isset($_POST[$namespace])){

        $s_answer = $_POST[$namespace];

        $result .= $s_answer;

        if ($question1 == $s_answer)
            $score++;

    }

}

$result .= $score;

echo $result;

}
?>
$stud\u id=(int)$\u POST['s\u id'];
$quick_id=(int)$\u POST['q_id'];
$score=0;
$tbl_name2=“a_测验”;
$sql2=“从$tbl\u name 2中选择*,其中q\u id='$quick\u id';
$result2=mysql\u查询($sql2);
$result='';
而($rows=mysql\u fetch\u数组($result2)){
$q_question=$rows['q_question'];
$question1=$rows['answer'];
$namespace=$rows['namespace'];
$result.=$q_问题;
$result.=
; $result.=$question1; $result.=
; if(isset($\u POST[$namespace])){ $s_answer=$_POST[$namespace]; $result.=$s\u答案; 如果($question1==$s_答案) $score++; } } $result.=$score; 回声$结果; } ?>
回答问题的关键是用户完成测试时提交的
。它包含每个问题的用户答案和字段名。为了向您展示如何循环浏览这些问题/答案集,我们需要查看表单的HTML或PHP,了解您现在是如何尝试这样做的。请检查表单,使用sessionok检查代码,我将尝试这个,顺便说一句,名称空间的用途是什么?它应该包含什么?将其视为一个变量,该变量将包含哪个单选按钮处于活动状态。单选按钮通过共享相同的
名称=
变量来工作——这就是一次仅激活一个的方式。
<?php
$score = 0;
$tbl_name2="a_quiz"; // Switch to table "forum_answer"
$sql2="SELECT * FROM $tbl_name2 WHERE q_id='$id'";
$result2=mysql_query($sql2);

while($rows=mysql_fetch_array($result2)){

    $q_question = $rows['q_question'];
    $namespace = $rows['namespace'];

?>

<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td><table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr style='overflow:hidden; word-wrap:break-word;'>
    <input type="text" name="q_id" value="<?php echo $rows['q_id'];?>">
<td bgcolor="lightgreen"><strong>Question:</strong></td>
<td bgcolor="lightgreen">:</td>
<td bgcolor="lightgreen" style="max-width: 1000px;"><?php echo $rows['q_question']; ?></td>
</tr>

<tr>
<td bgcolor="lightgreen"><strong>A</strong></td>
<td bgcolor="lightgreen">:</td>
<td bgcolor="lightgreen"><input type="radio" name="<?php echo $namespace; ?>" value="a"><?php echo $rows['a'] ?></td>
</tr>
<tr>
<td width="18%" bgcolor="lightgreen"><strong>B</strong></td>
<td width="5%" bgcolor="lightgreen">:</td>
<td width="77%" bgcolor="lightgreen"><input type="radio" name="<?php echo $namespace; ?>" value="b"><?php echo $rows['b'] ?></td>
</tr>
<tr>
<td width="18%" bgcolor="lightgreen"><strong>C</strong></td>
<td width="5%" bgcolor="lightgreen">:</td>
<td width="77%" bgcolor="lightgreen"><input type="radio" name="<?php echo $namespace; ?>" value="c"><?php echo $rows['c'] ?></td>
</tr>
<tr>
<td bgcolor="lightgreen"><strong>D</strong></td>
<td bgcolor="lightgreen">:</td>
<td bgcolor="lightgreen"><input type="radio" name="<?php echo $namespace; ?>" value="d"><?php echo $rows['d'] ?></td>
</tr>


</table></td>
</tr>
<hr>
</table><br>
 <?php
}
?>
$stud_id = (int)$_POST['s_id'];
$quiz_id = (int)$_POST['q_id'];
$score = 0;

$tbl_name2 = "a_quiz"; 

$sql2 = "SELECT * FROM $tbl_name2 WHERE q_id='$quiz_id'";
$result2 = mysql_query($sql2);

$result = '';

while($rows=mysql_fetch_array($result2)){

    $q_question = $rows['q_question'];
    $question1 = $rows['answer'];
    $namespace = $rows['namespace'];

    $result .= $q_question;
    $result .= <br>;
    $result .= $question1;
    $result .= <br>;

    if(isset($_POST[$namespace])){

        $s_answer = $_POST[$namespace];

        $result .= $s_answer;

        if ($question1 == $s_answer)
            $score++;

    }

}

$result .= $score;

echo $result;

}
?>