将mysql中的数组仅插入到选定的记录中

时间:2012-03-31 01:43:15

标签: php mysql where-clause sql

我正在尝试在特定记录中输入一个值,我有一个代码,用户从下拉列表中选择一个课程,然后通过复选框将学生从表中添加到课程中,事情是我什么时候我试图将课程ID插入学生表我不能选择用户选择的学生! 这是我的代码:

<?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是包含选择添加到课程的学生ID的数组 这是我得到的错误: 解析错误:语法错误,第20行的C:\ AppServ \ www \ test \ S2.php中的意外'[',期待']'

2 个答案:

答案 0 :(得分:0)

我猜你的db结构出错了。在我的情况下,它将类似于以下示例:

数据库结构:

1。)学生:[uin,fullname,address,...]
2.)课程:[uin,title,...]
3.)stud_courses:[uin,stud_uin,course_uin]

现在,当用户为各自的课程选择相应的学生时,可以说9:

1。)让我们说检查的螺柱列表是:$chkStuds
2.)选择课程ID: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)))

它可以帮到你。

答案 1 :(得分:0)

错误在于:

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

应该是:

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