2013-08-28 53 views
0

如何更新答案的描述到我的數據庫?使用嵌套for循環更新數據庫?

我有一個更新問題描述的工作代碼。

每當我點擊更新,只有問題描述更新不是答案。

我已經添加了一些代碼...

這裏是我的新代碼,但它似乎沒有工作,要麼:

for ($i = 0; $i < sizeof($selected); $i++) 
{ 
    $sql = sprintf("UPDATE exam_questions SET question_description = '%s' WHERE question_id = '%s'", 
      mysql_real_escape_string($question[$i]), 
      mysql_real_escape_string($selected[$i])); 
    mysql_query($sql)or die(mysql_error()); 

    $sql = mysql_query("SELECT * FROM exam_answers WHERE answer_question_set_id = '".$selected[$i]."'")or die(mysql_error()); 
    $count=mysql_num_rows($sql); 

    for($e = 0; $e<$count; $e++){ 
    $sql = sprintf("UPDATE exam_answers SET answer_description = '%s' WHERE answer_question_set_id = '%s'", 
      mysql_real_escape_string($answer[$e]), 
      mysql_real_escape_string($answerid[$e])); 
    mysql_query($sql)or die(mysql_error()); 
    } 
} 
+0

是問題ID字段的整數或字符串? – Bokw

+0

其整數。它的值複選框的attrib我忘記提及 –

+2

您重寫第二個for循環中的$ x變量,您應該使用另一個變量名稱:) – tomahaug

回答

0

不要使用

for($x = 0; $x < sizeof($answer); $x++){ 
    **$x** = sprintf("UPDATE exam_answers SET answer_description = '%s' WHERE answer_question_set_id = '%s'", 
      mysql_real_escape_string($answer[$x]), 
      mysql_real_escape_string($answerid[$x])); 
    mysql_query($x)or die(mysql_error()); 
    } 
$ X

而是使用您選擇的另一個變量。這會使你的循環複雜化。

0

取而代之的是:

for($x = 0; $x < sizeof($answer); $x++){ 
    $x = sprintf("UPDATE exam_answers SET answer_description = '%s' WHERE answer_question_set_id = '%s'", 
      mysql_real_escape_string($answer[$x]), 
      mysql_real_escape_string($answerid[$x])); 
    mysql_query($x)or die(mysql_error()); 
} 

你應該這樣做:

for($x = 0; $x < sizeof($answer); $x++){ 
    $sql = sprintf("UPDATE exam_answers SET answer_description = '%s' WHERE answer_question_set_id = '%s'", 
      mysql_real_escape_string($answer[$x]), 
      mysql_real_escape_string($answerid[$x])); 
    mysql_query($sql)or die(mysql_error()); 
} 

通知以 「$ SQL」 替換 「$ X」 像在第一for循環。