我已經得到了一個表單,其中有回答的問題。然後在接下來的頁面中,我試圖驗證問題,看看答案是否正確,因爲最終我必須計算出測試的百分比。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