2012-12-24 42 views
0

我有3個表。 tbl_info,tbl_trainings和tbl_infotrainings,其中tbl_infotrainings用於連接tbl_info和tbl_trainings。已加入表INSERT語句

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);  
} 
} 

在此先感謝。

+0

我認爲您錯過了一條有價值的信息來獲得一些幫助 - 您目前遇到的錯誤或不良結果是什麼? –

+0

我真的不能告訴錯誤,因爲我只是在使用if else。但training_id不接受任何內容,僅在數據庫中爲0 – user1926313

回答

1

不要使用'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' 
...