вставка массива в MySQL только для выбранных записей - PullRequest
0 голосов
/ 31 марта 2012

Я пытаюсь ввести значение в определенные записи, у меня есть код, в котором пользователь выбирает курс из выпадающего списка, а затем добавляет студентов из таблицы с помощью флажка к курсу, когда яя пытаюсь вставить идентификатор курса в таблицу учеников, я не могу выбрать учеников, которых выберет пользователь !!Вот мой код:

<?php

include("S.php");
$connectdb = mysql_connect('localhost','root','sara') or die ("Not Connect");
if (!$connectdb)
{
    die('Could not connect :'. mysql_errno());
}
$selestdb = mysql_select_db('iexa', $connectdb) or die ("not selected database");
$count = count($foo);

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 />";
mysql_close($connectdb) ;

?>

, где $foo - это массив, содержащий идентификатор студента, который был выбран для добавления в курс. Это ошибка, которую я получил: Ошибка разбора: синтаксическая ошибка, неожиданная '[', ожидая'] 'в C: \ AppServ \ www \ test \ S2.php в строке 20

Ответы [ 2 ]

0 голосов
/ 31 марта 2012

Ошибка здесь:

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

Должно быть:

$sql = "INSERT INTO student (ID) VALUES ('" . $_POST[$row['courseID']] . "')";
0 голосов
/ 31 марта 2012

Полагаю, вы ошибаетесь со структурой БД.В моем случае это будет похоже на следующий пример:

Структура БД:

1.) Студент: [uin, полное имя, адрес, ...]
2.) Курсы: [uin, title, ...]
3.) stud_courses: [uin, stud_uin, course_uin]

Теперь, когда пользователь выбирает соответствующих студентов для соответствующего курса, скажем 9:

1.) Допустим, список проверенных учеников: $chkStuds
2.) Sel Идентификатор курса: 9

Шаги:

1.) Удалить все предыдущие записи соответствующего курса вstud_course

 mysql_query(sprintf("delete from stud_course where course_uin = %d", $selCourseUIN));

2.) Сделайте массовую вставку:

 mysql_query(sprintf("insert into stud_course(stud_uin, course_uin) select uin as stud_uin, %d as course_uin from students where uin in (%s)", $selCourseUIN, implode(",", $chkStuds)))

Пусть это вам очень поможет.

...