[英]joined table INSERT statement
我有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);
}
}
提前致謝。
不要將'NULL'
用作(我認為) AUTO_INCREMENT
id的文本值-只需使用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'
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.