如何使用数组更新列

时间:2012-04-01 08:28:28

标签: php mysql arrays where

我有一个表,其主键是名为St_ID的列。我想使用存储在数组中的值更新同一个(ID)中的另一列。但是当我尝试下面的代码时,结果是一个St_ID值为'0'且其他所有列都为空的新记录。

注意,courseID是通过下拉列表选择的值。你知道我哪里出错吗?

for ($i = 0; $i < $count; $i++){
   $Student = $foo[$i];
   $res = mysql_query("SELECT St_ID FROM student WHERE St_ID='$Student' ");
   while($row = mysql_fetch_array($res))
   {
      $sql = "INSERT INTO student (ID) VALUES
      ('" . $_POST[$row['courseID']] . "')";
   }
}
if (!mysql_query($sql,$connectdb))
{
   die ('Error :'.mysql_error());
}
echo "The Students are add to the course <br />";

3 个答案:

答案 0 :(得分:2)

这里是简化的代码,只有一个查询

$where = "'".implode("','", $foo)."'";
$res = mysql_query("UPDATE student set ID = courseID WHERE St_ID IN ($where)") 
         or die('Error :'.mysql_error());

 echo "The Students are add to the course <br />";

答案 1 :(得分:0)

您选择St_ID但请尝试插入courseID

在这一行

$sql = "INSERT INTO student (ID) VALUES
     ('" . $_POST[$row['courseID']] . "')";

答案 2 :(得分:0)

SELECT St_ID FROM student WHERE St_ID='$Student' 
INSERT INTO student (ID) VALUES ...

如果要更新所选的记录,则必须使用UPDATE sql命令;

UPDATE student 
SET ID=...
WHERE St_ID='$Student'