2012-03-18 24 views
2

鑑於此表在我的數據庫:如何使用PHP相應地將每個頁面上的選定單選按鈕存儲到數據庫中?

|AnswerID|QuestionID|AnswerText| 
|21  |2   |User  | 
|22  |2   |Admin  | 
|23  |2   |Guest  | 
|24  |2   |User2  | 

我創建使用PAGINATION顯示個人的問題,其在每個頁面的選項進行測驗。示例代碼片段如下所示:

$questionID=0; 
while ($list = mysql_fetch_assoc($result)) 
{ 
echo $list['QuestionID'] . ":" . $list['QuestionText'] . "<br/>"; 
$questionID=$list['QuestionID']; 
} 
$optionsquery="SELECT AnswerText,AnswerID FROM Options Where QuestionID=".$questionID; 
$optionsresult=mysql_query($optionsquery) or die ('Query failed:'. mysql_error()); 
while($row = mysql_fetch_array($optionsresult)) 
{ 
echo "<br>"; 
echo "<input type='radio' id='radio-" . $row["QuestionID"] . "-" 
     . $row["AnswerID"] . "' name='" . $row["QuestionID"] 
     . "' value='" . $row["AnswerID"] . "' /> 
     <label for='radio-" . $row["QuestionID"] . "-" . $row["AnswerID"] . "'>" 
     . $row["AnswerText"] ."</label><br/>"; 
     echo "<br>"; 
} 

這是我的目標。鑑於這種關係AnswerID < - > AnswerText, 我要存儲用戶選擇爲以下格式的我的數據庫表中選定電臺:

|StudentID|QuestionID(e.g: 1)|QuestionID(e.g: 2)| 
|678D  |AnswerID(e.g: 11) |AnswerID(e.g: 22) | 
|681D  |AnswerID(e.g: 14) |AnswerID(e.g: 23) | 

如上所示,我不是硬編碼問題和每個頁面的選項,他們是從我的數據庫表中取出。所有代碼都只能寫入一個PHP文件。我使用了PHP(用PHP),但我對如何實現我的目標感到困惑。任何代碼(PHP)片段都會對我有用,因爲我正在失去想法。提前致謝。

回答

1

我會建議你不要將其存儲在這種方式(即每列一個問題)......你會過得更好創建鏈接studentquestionanswer表:

Student question  answer 
678D  1   11 
678D  2   22 
681D  1   14 
681D  2   23 

這爲您提供更好的靈活性 - 例如,您可以輕鬆增加問題數量。

爲了使處理提交形式更容易我想改變HTML輸出這樣:

echo "<input type='radio' id='question[" . $row["QuestionID"] . "]' name='question[" . 
$row["QuestionID"] ."]' value='" . $row["AnswerID"] . "' />"; 

這將產生輸入作爲陣列時這樣提交這將馬鞍處理它們:

$questions = $_POST['question']; // this returns an array like questions[questionid] 
foreach ($questions as $qid => $aid) { 
    $query = 'INSERT INTO answertable(student,question,answer) VALUES 
       ($sudentid,$qid,$aid)'; 
} 

您需要將answertable更改爲您用於記錄答案的表的名稱。而$student將從目前的會議上獲得(即時猜測這就是你在哪裏存放)

+0

我應該如何在分頁還挺這種環境組織

標籤(提交)按鈕?在將數據插入數據庫之前,有沒有辦法查看我在另一個頁面中選擇的答案的輸出?感謝您的幫助到目前爲止,我正在學習新的東西:) – Derek 2012-03-18 11:03:48

+0

@Derek您可以使用'

'標籤,因爲結果表會跟蹤您的問題答案。要查看答案使用「回聲」輸出它們,而不是將它們添加到「插入」查詢 – ManseUK 2012-03-18 21:24:15

+0

嗨,我試着實現下面的方法如下所示,但是我仍然不能得到每個頁面上選定值的值和當我從一個頁面導航到另一個頁面時,不會保存每個問題的選定值。你能告訴我什麼是錯的? echo「」; session_start(); $ _ SESSION ['questions'] = $ _ POST ['question']; echo「」; echo $ _SESSION ['questions']; – Derek 2012-03-19 02:04:27

相關問題