【发布时间】:2013-01-05 21:49:06
【问题描述】:
我正在尝试检查用户选择的答案是否正确,但它不能正常工作:
<form method="post">
<?php
$question = mysql_query("SELECT * FROM `questions`");
$stat = mysql_fetch_assoc($question);
$num = mysql_num_rows($question);
$questionid = 0;
for($i=0;$i<=$num;$i++)
{
$question = mysql_query("SELECT * FROM `questions` WHERE `id`='$i'");
$stat = mysql_fetch_assoc($question);
//if($stat['answer'] == null
echo $stat['question'] . '<br />';
echo '<input type="radio" name="a'.$x.'" value="'.$x.'" />' .$stat['answer1']."<br />";
echo '<input type="radio" name="a'.$x.'" value="'.$x.'" />' .$stat['answer2'] . '<br />';
echo '<input type="radio" name="a'.$x.'" value="'.$x.'" />' .$stat['answer3'] . '<br />';
echo '<input type="radio" name="a'.$x.'" value="'.$x.'" />' .$stat['answer4'] . '<br />';
$questionid++;
$x = $x+1;
}
echo $result;
?>
<input type="submit" name="go" value="Go" />
</form>
那部分基本上是:
$x = 1;
$question = mysql_query("SELECT * FROM `questions`");
$stat = mysql_fetch_assoc($question);
$num = mysql_num_rows($question);
if(isset($_POST['go']))
{
for($i=0;$i<$num;$i++)
{
if ($_POST['ans'.$x] == $row['correct'])
{
$result = $result + 1;
}
$x = $x + 1;
}
}
由于某种原因,它没有正确发布结果,我认为代码有问题,希望得到帮助。
【问题讨论】:
-
您尝试过任何基本调试吗?例如
var_dump($_POST)?您似乎正在将字段名称构建为a1、a2等...但正在您的 php 代码中寻找ans1、ans2等...。 -
你能打印出一些中间结果吗?例如,
$row['correct']是什么 - 是您所期望的吗? -
我认为 Marc 的想法与
a.和ans.之间的区别 -
我通过结果检查将 PHP 部分中的 ans 更改为 a,$_row['correct'] 基本上是一个整数,它告诉哪个答案是正确的。
-
$result 是否从未被初始化有关系吗?我不知道它是否在代码之外,但在这里我只看到结果增加并显示,最初没有设置任何值。
标签: php mysql post phpmyadmin mysql-num-rows