我有一个表格,问题可以得到解答。然后在接下来的页面上,我试图验证问题,看看答案是否正确,因为最终我必须确定测试的百分比。
$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
没有输出
答案 0 :(得分:1)
使用mysql_fetch_assoc
可以在返回的数组上使用列名索引。
答案 1 :(得分:1)
如果您获得了有效的结果(在数据库客户端中测试sql),那么您应该使用以下内容将其作为关联数组访问:
mysql_fetch_assoc($result1);
代替mysql_fetch_array()或使用 mysql_fetch_array($ result1,MYSQL_ASSOC)
测试返回给你的内容,注释掉你的while循环,然后执行:
$row1 = mysql_fetch_array($result1);
print_r($row1);
在while循环之前添加以下内容进行验证:
if (!$result1) {
die('Could not query:' . mysql_error());
}
答案 2 :(得分:0)
您还可以输出SQL并在数据库上对其进行测试,这将显示您获得了预期的结果