获取在线考试网站(php)数据库中具有值的选定单选按钮



我正在制作一个在线考试网站,我需要获取单选按钮的选定值来计算最终结果,并将其显示给用户,我编码为:

<form method="POST" action="result1.php">
<div style="height:900px;width:1200px;color: black;margin-left:25px;">
<?php
if($_SERVER["REQUEST_METHOD"]=="POST")
{
$servername="localhost";
$username="root";
$password="";
$dbname="online_exams";
$conn=mysql_connect($servername,$username,$password);
mysql_select_db($dbname,$conn);
$x=$_REQUEST['c1'];
$result=mysql_query("select q.qno,q.ques,a.a1,a.a2,a.a3,a.a4 from ques q,ans a where a.cid=q.cid and a.cid=$x and a.qno=q.qno",$conn);
$num_rows=mysql_num_rows($result);
if($num_rows>0)
{
while($row=mysql_fetch_array($result))
{
echo $row['qno'];
echo"<br>";
echo $row['ques']; echo "<br/>";
?>
<input type="radio"  name="'<?php echo $row['qno']; ?>'"value="'<?php echo $row['a1']; ?>'" ><?php echo $row['a1'];  echo "<br/>"; ?>
<input type="radio" name="'<?php echo $row['qno']; ?>'" value="'<?php echo $row['a2']; ?>'" ><?php echo  $row['a2']; echo "<br/>";?>
<input type="radio" name="'<?php echo $row['qno']; ?>'" value="'<?php e  cho $row['a3']; ?>'" ><?php echo $row['a3']; echo "<br/>";?>
<input type="radio"  name="'<?php echo $row['qno']; ?>'"value="'<?php   echo $row['a4']; ?>'" ><?php echo $row['a4']; echo "<br/>";?> 
<?php
}}}
?>
<input type="submit" name="submit" value="submit" >

然后在另一个页面中计算结果,而获取值时没有获得所需的结果,由于单选按钮的值存储在数据库中,我无法找到任何方法来检索它们,下面是另一个代码:

<?php
if($_SERVER["REQUEST_METHOD"]=="POST")
{
$servername="localhost";
$username="root";
$password="";
$dbname="online_exams";
$conn=mysql_connect($servername,$username,$password);
mysql_select_db($dbname,$conn);
$result=mysql_query("select q.qno,q.cans,q.ques,a.a1,a.a2,a.a3,a.a4 from ques q,ans a where a.cid=q.cid and a.qno=q.qno",
$conn);

$x = 0;
$score = 0;
while ($row = mysql_fetch_assoc($result))
{
if(isset($_POST['$row['qno']']))
$answered = $_POST[' $row['qno']'];
$correct = $row['cans'] ;
if ($answered == $correct ) {
$score++;
}

$x = $x + 1;
}
echo 'You had a total of ' . $score . ' out of ' . $x . ' questions right!';

}?>

试试这个

<input type="radio"  name="<?php echo $row['qno']; ?>" value="<?php echo $row['a1']; ?>" ><?php echo $row['a1'];  echo "<br/>"; ?>
<input type="radio" name="<?php echo $row['qno']; ?>" value="<?php echo $row['a2']; ?>" ><?php echo  $row['a2']; echo "<br/>";?>
<input type="radio" name="<?php echo $row['qno']; ?>" value="<?php e  cho $row['a3']; ?>" ><?php echo $row['a3']; echo "<br/>";?>
<input type="radio"  name="<?php echo $row['qno']; ?>" value="<?php   echo $row['a4']; ?>" ><?php echo $row['a4']; echo "<br/>";?> 

我认为在"之后/之前"有一个引号会把它搞砸。值也是如此。因为你没有回显整行,所以不需要用引号把常量和变量分开。

基本上,您使用的是value="'1'",而不是value="1">

您有语法错误,请在此处更改,即使在编写一两行代码时也要使用括号,这是的良好做法

if(isset($_POST[$row['qno']])){
$answered = $_POST[$row['qno']];
}

最新更新