2017-03-22 13 views
-2

好吧,所以基本上我有一個sock_id和一個charity_id,有4個選項用於襪子,2個用於慈善。用戶可以選擇多個襪子和慈善機構,所以我現在擁有的是: sock_id = 1 1 2 2 3 3 4 4 charity_id = 1 2 1 2 1 2 1 2 我想要的是: sock_id = 1 2 3 4 charity_id = 1 2 1 2 這裏是我的代碼:PHP中的兩個數組mysql

$sockList = $_POST['sock_list']; 
$charityList = $_POST['charity']; 
foreach($sockList as $s){ 
foreach($charityList as $c){ 
$sql = "INSERT INTO donor_sock(Donor_id, Sock_id, Charity_id) VALUES('$donor', '$s', '$c')"; 
$conn->query($sql); 
echo "$sql"; 
} 
} 

輸出:

INSERT INTO donor_sock(Donor_id,Sock_id,Charity_id)VALUES( '8', '1','1 ')

INSERT INTO donor_sock(Donor_id,Sock_id,Charity_id)VALUES( '8', '1', '2')

INSERT INTO donor_sock(Donor_id,Sock_id,Charity_id)VALUES( '8', '2', '1')

INSERT INTO donor_sock(Donor_id, Sock_id,Charity_id)VALUES( '8', '2', '2')

這裏是表的樣子:

Table

這裏就是我想:

table2

,如果你需要更多的信息,讓我知道,但我知道這個問題只是在於這個代碼內和IM肯定它的循環問題

+0

可以包括輸出'echo「$ sql」;'? –

+0

這個輸出只是當用戶選擇2襪子和兩個charties –

+1

你發佈了一些代碼,你可能希望我們修復它,甚至沒有告訴它有什麼問題。 – axiac

回答

1

一個試試這個:

for($i=0;$i<count($sockList);$i++){ 
$sql = "INSERT INTO donor_sock(Donor_id, Sock_id, Charity_id) VALUES('$donor', $sockList[$i], $charityList[$i])"; 
$conn->query($sql); 
echo "$sql"; 
} 
+0

這適用於兩個,但打印出錯誤:注意:未定義偏移量:2在 INSERT INTO donor_sock(Donor_id,Sock_id,Charity_id)VALUES('10','3','') 注意:未定義偏移量:3 inINSERT INTO donor_sock(Donor_id,Sock_id,Charity_id)VALUES('10','4','')當我輸入4個選擇襪子 –

+0

$ sockList,$ charityList這兩個數組需要是相同的大小請確保,這意味着每個sock_id應該有charity_id然後它將工作 – Omi

+0

是否有沒有辦法複製charity_id插入,以便它填充表的其餘部分? –