Как обновить столбец с помощью массива - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть таблица, первичным ключом которой является столбец с именем 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 ]

2 голосов
/ 01 апреля 2012

Здесь упрощенный код, только с одним запросом

$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 />";
0 голосов
/ 01 апреля 2012
SELECT St_ID FROM student WHERE St_ID='$Student' 
INSERT INTO student (ID) VALUES ...

Если вы хотите обновить выбранную запись, вы должны использовать вместо нее команду UPDATE sql;

UPDATE student 
SET ID=...
WHERE St_ID='$Student' 
0 голосов
/ 01 апреля 2012

вы выбираете St_ID, но попробуйте вставить courseID

в этой строке

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