2012-09-14 42 views
5

ユーザーが単純化のために、彼らはcheckedHWという配列でIDの値を選択するチェックボックスを選択した場合、私はこのコードがどのように見えるかで、チェックボックスと値のテーブルを持っている:複数の値を1つの列に挿入するmysql?

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

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

テストのためのエコークエリ:

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

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

が、私はEないよ:

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

私はこのクエリによってIループは、私が仮にこれを行うことができればということを考え出しました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キャストを追加し、最初の値の行を挿入します – 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 |あなたのID列がintタイプであれば種類

ので、あなたは、あなたがチェックボックスのシリーズを持って、そしてあなたのテーブルに値を挿入したい場合は、あなたがそれらをループができた最初のクエリ

0

を実行するカントこのように:

INSERT INTO `table_name` (`column_name`) VALUES (1),(2),(3),(4) 
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クエリを与えます

このヘルプが必要です。あなたはこのような何か行うことができます

関連する問題