0

我有 3 张桌子。tbl_info、tbl_trainings 和 tbl_infotrainings,其中 tbl_infotrainings 用于连接 tbl_info 和 tbl_trainings。

tbl_trainings 接受多个复选框值。tbl_trainings 包含:

+------+-----------+
|  id  |  training |
+------+-----------+

tbl_infotrainings 包含:

+------+-----------+---------------+
|  id  |  info_id  |  training_id  |
+------+-----------+---------------+

我的问题是插入新信息时。这是我使用的代码:

用于插入 tbl_info 的 id(工作正常)

$sql3 = "INSERT INTO tbl_infotrainings (info_id) (SELECT id FROM tbl_info)";

用于插入 tbl_training 的 id(有错误)

$sql4 = "INSERT INTO tbl_infotrainings (training_id) (SELECT id FROM tbl_trainings)";

数据库中所需的输出将是:

+------+-----------+------------+
|  id  |  info_id  |  training  |
+------+-----------+------------+
|  1   |    1      |     1      |
+------+-----------+------------+
|  2   |    1      |     2      |
+------+-----------+------------+
|  3   |    1      |     3      |
+------+-----------+------------+

这是完整的代码:

if($_POST["Submit"]=="Submit"){
$sql1="INSERT INTO tbl_info VALUES ('NULL', '$fname', '$mname', '$lname', '$street', '$barangay', '$city', '$number', '$month', '$day', '$year', '$status' , '$spouse', '$dependent')";
$result1=mysql_query($sql1);
$sql3 = "INSERT INTO tbl_infotrainings (info_id) (SELECT id FROM tbl_info)";
$result3=mysql_query($sql3);
$sql4 = "INSERT INTO tbl_infotrainings (training_id) (SELECT id FROM tbl_trainings)";
$result4=mysql_query($sql4);
    for ($i=0; $i<sizeof($checkbox);$i++){
$sql2="INSERT INTO tbl_trainings VALUES ('NULL', '".$checkbox[$i]."')";
$result2=mysql_query($sql2);    
}
}

提前致谢。

4

1 回答 1

1

不要'NULL'用作(我假设)id 的文本值AUTO_INCREMENT——只需使用NULL关键字。

...
    $sql1 = "INSERT INTO tbl_info VALUES (NULL, '$fname', '$mname', '$lname', '$street', '$barangay', '$city', '$number', '$month', '$day', '$year', '$status' , '$spouse', '$dependent')"; // NULL not 'NULL'
    ...
    $sql2 = "INSERT INTO tbl_trainings VALUES (NULL, '".$checkbox[$i]."')"; // NULL not 'NULL'
...
于 2012-12-24T18:07:42.290 回答