2013-04-03 42 views
-2

我一直努力工作的PHP/MySQL項目的最後一步是允許教師查看學生每次考試的結果。當學生看到他們自己的結果時 - 這很簡單,當然使用他們的SessionID和他們選擇的測試的後期值。POST單個選項的多個值

現在 - 當老師進去時,我可以繼續使用相同的方法來測試我們想要退回的QuizID ...但UserID對我來說仍然有點神祕。在此代碼中:

$sql = "SELECT Complete.UserName, Complete.UserID, Complete.QuizID, Quiz.QuizName 
     FROM Complete 
     INNER JOIN Quiz 
     ON Complete.QuizID=Quiz.QuizID"; 
       $result = mysql_query($sql); 
       while($row = mysql_fetch_array($result)) 
       { 
        echo "<option value=\"".$row['QuizID']."\">".$row['QuizName']." - ".$row['UserName']."</option>\n "; 
       } 
       if (!mysql_query($sql,$con)){ 
       die('Error: ' . mysql_error());} 

是否有辦法讓它不僅使QuizID傳入,還使用UserID?我嘗試了一些我在這裏和其他地方看到的想法,但沒有這樣的運氣。

+3

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 –

+0

感謝通知!是的,將來我會轉而使用MySQLi--但我只是意識到了這一點,並沒有真正有時間去處理所有事情以切換到SQLi。所以記住這一點! – Mathematical

+1

只需在'mysql'中添加'i'。需要多少努力? – itachi

回答

1

根據你的評論,如果這是你的崗位價值

echo "<option value=\"".$row['QuizID'].",".$row['UserID']."]"\">".$row['QuizName']." - ".$row['UserName']."</option>\n "; 

那麼你可以用爆炸來提取quizid和用戶ID

$tempval = explode(',',$_POST['QuizID']); // is assume your html field id/name is QuizID 
$quizId = $tempval[0]; 
$userId = $tempval[1]; 

在PHP中的SQL查詢的WHERE子句可能是:

$sql = "SELECT * FROM Results WHERE QuizID ='".$quizId."' AND UserID ='".$userId."'"; 
+0

這將是它!非常感謝。現在可以在星期五的最終部署之前清理並轉移到SQLi。再次感謝。 – Mathematical