2011-10-03 35 views
0

如何將我的行輸出到複選框組中並根據所檢查項目的ID將它們插入到數據庫中?複選框組與MYSQL的多重插入可實現?

因此,用戶檢查1,2,3,4,5,我將ID爲1,2,3,4,5插入到myTable中。

我永遠只處理了1 x $ MYVARIABLE INSERTS到目前爲止..

+0

你能澄清你的問題?如果用戶沒有選中3,爲什麼還要插入3? – itsmeee

+0

是的,它是可以實現的。 – Mob

回答

1

MySQL有一個擴展插入語句。假設您的複選框的值存儲在一個標準化的表,你會使用類似

INSERT INTO yourtable (checkboxID) VALUES ($id1), ($id2), ($id3), etc... 

這將產生一個新的紀錄yourtable您指定的每個值。需要注意的是,你可以以同樣的方式插入值的集合:

INSERT .... VALUES ($x, $y), ($a, $b), ($c, $d) etc... 

你必須建立價值觀的自己,列表,他們周圍的括號是必需的伸出的插入工作。你不能簡單地做INSERT .... implode($_POST['checkboxes']類型的事情。

現在,如果您想在ID中的單個字段/記錄中插入逗號分隔的ID列表,那麼我強烈建議您不要。規範你的數據庫併爲這些值創建一個子表。

+0

該ID將被插入到一個鏈接表中,該鏈接表只保存ID。它基本上是屬於Foo的ID列表。所以他們選擇Foo,並選擇添加到Foo的值。這些值的ID存儲在一個鏈接表中,其中插入了Foo ID ...所以我想爲每個選定的值添加Foo的ID。 – SMacFadyen

1

將您的複選框命名爲數組,然後檢查每個索引是否被選中時的提交。

例如:

<input type='checkbox' name=content[] value='1'>1 
<input type='checkbox' name=content[] value='2'>2 
<input type='checkbox' name=content[] value='3'>3 

PHP:

foreach($_POST['content'] as $record) 
{ 
    // insert query 
} 
+0

'$ record'將一直設置,不需要使用'isset()'來檢查。 – hakre

+0

是的,這是真的。我總是謹慎的檢查條件:p –

+0

但是不會插入12345?我需要單獨的行 – SMacFadyen