我已经得到了一个表单,其中有回答的问题。然后在接下来的页面中,我试图验证问题,看看答案是否正确,因为最终我必须计算出测试的百分比。while foreach内部循环
$tid1 = $_SESSION['tid'];
$departmentid = $_SESSION['deptid'];
$userid = $_SESSION['userid'];
foreach($_POST['question'] as $key => $answer) {
include 'datalogin.php';
mysql_query("INSERT INTO ex_answer (id,class_name,testname,name,percentage,qnr,answer_chosen,points_scored,result)
VALUES ('0','$departmentid','$tid1','$userid','0','$key','$answer[0] $answer[1] $answer[2] $answer[3] $answer[4] $answer[5] $answer[6] $answer[7] $answer[8]','0','0')");
$sql1="SELECT * FROM ex_question WHERE test_name = '$tid1' AND q_nr = '$key'";
$result1=mysql_query($sql1);
while($row1 = mysql_fetch_array($result1)) {
$q_nr=$row1['q_nr'];
echo $q_nr;
}
}
的问题是(我认为),它不是从表中选择的问题数量q_nr = '$key'
正确,因为echo $q_nr
没有给出输出
不'包括 'datalogin.php';'真正需要的是在'foreach'循环内? (也就是说,它是否真的需要被包含在每一次迭代中,或者你可以在'foreach'之前加入一次吗?)另外,请发布你的数据库表格描述,这将有所帮助。 – megaflop
如果你的'echo mysql_num_rows($ result1);'会发生什么?你有行吗?当你用静态值而不是变量运行查询时会发生什么(例如'SELECT * FROM ex_question WHERE test_name ='testname'AND q_nr ='1'')?你有没有得到你期望的结果?如果你这样做,确保'$ key'和'$ tid1'包含你期望的值。我看不到'$ tid1'被定义在任何地方 - 'datalogin.php'中发生了什么? – DaveRandom
echo the line:$ sql1 =“SELECT * FROM ex_question WHERE test_name ='$ tid1'AND q_nr ='$ key'”; 然后你可以看到问题。 – mahadeb