2012-09-14 223 views
5

我有複選框和值的表中,如果用戶選擇,他們選擇在稱爲checkedHW爲了簡單起見陣列的ID的值的複選框,這是什麼代碼看起來像:在一列中插入多個值mysql?

$ids = implode(',',arrayofids); 

$sql = "insert into table(id, type) values($ids,type); 
$db->query($sql); 

用於測試回波查詢:

"insert into table('id1,id2','type') 

我認爲,如果通過此查詢我環,我可以假設這樣做:

"insert into table('id1','type');" 

"insert into table('id2','type');" 

,但我不è Xactly公司很清楚如何做,任何幫助將是美好:)

其實,我解決了它使用:

for($i=0;$i<count(arrayofids); $i++){ 
$sql = "insert into table(id,type) values(array[$i], 'type'"; 
$db->query($sql);} 

我希望幫助別人,並感謝你們的幫助!

+0

我想'id'數據類型爲int類型。 – diEcho

+0

我剛剛添加了一個int cast,它只爲第一個值插入了一行 – bubbles

回答

6

你可以做這樣的事情:

$base = 'INSERT INTO table (id, type) VALUES ('; 
$array = array(1, 2, 3, 4); 
$values = implode(", 'type'), (", $array); 
$query = $base . $values . ", 'type')"; 

$db->query($query); 

這是會得到提交的內容:

INSERT INTO table (id, type) VALUES (1, 'type'), (2, 'type'), (3, 'type'), (4, 'type')
+0

我能夠在不使用implode的情況下解決它,但感謝您的幫助! – bubbles

0

兩個查詢是完全不同的

insert into table('id1,id2','type')將插入單列

ID1,ID2 |鍵入

insert into table('id1','type');" 

insert into table('id2','type');" 

將插入兩行

ID1 |類型
id2 |鍵入

因此,如果您IDint類型,那麼你不能運行第一查詢

0

如果您有一系列的複選框,並希望將這些值插入到你的表,你可以通過他們循環像這樣:

<?php 

$values = array(); 

foreach ($_POST['field_name'] as $i => $value) { 
    $values[] = sprintf('(%d)', $value); 
} 

$values = implode(',', $values); 

$sql = "INSERT INTO `table_name` (`column_name`) VALUES $values"; 

這會給你類似SQL查詢:

INSERT INTO `table_name` (`column_name`) VALUES (1),(2),(3),(4) 

希望得到這個幫助。