2012-04-14 8 views
0

に配列データを挿入する基本的に私は私が望んでいた何は、MySQLのテーブル

<input value="1" type="checkbox" name="rp_product[]" id="in-category1"> Microsoft IntelliMouse Pro 1 
<input value="2" type="checkbox" name="rp_product[]" id="in-category2"> Microsoft IntelliMouse Pro 2 
<input value="3" type="checkbox" name="rp_product[]" id="in-category3"> Microsoft IntelliMouse Pro 3 
<input value="3" type="checkbox" name="rp_product[]" id="in-category3"> Microsoft IntelliMouse Pro 4 

が​​によって、テーブルにチェックイン、チェックボックスを挿入することで、私はチェックボックスを持って、私のテーブルの上に

-------------------------------------------- 
| products_id | related_products_ids | 
| ------------------------------------------ 
| 1   | 2     | 
| ------------------------------------------ 
| 1   | 3     | 
| ------------------------------------------ 
| 1   | 4     | 
-------------------------------------------- 

これを望んでいました。

for ($i=0; $i<count($_POST['rp_product']); $i++) 
{ 
    $check_val1 .= $_POST['rp_product'][$i] .","; 
} 
$check_val = trim($check_val1, ','); 
unset($check_val1); 

$insert_rp_ids1 = explode(',', $check_val); 

for($i=0;$i<count($insert_rp_ids1);$i++) { 
    $usetag = mysql_real_escape_string(stripslashes(ltrim(rtrim($insert_rp_ids1[$i])))); 
     if($usetag == "") continue; 
     $array1 = array('products_id' => (int)$products_id, 
        'related_products_ids' => $usetag); 
     $wpdb->insert(TABLE_RELATED_PRODUCTS, $array1); 
     } 
} 

問題私はこのPHPコードを使用

は、最初にチェックのチェックボックスのみが挿入されている、ということです。問題と思われるものや他の解決策がありますか?助けてください。

+0

サイドノート:1)ltrim + rtrim = trim。 2)なぜあなたは爆破して配列を爆発させ、それを直接ループするのではないのですか? 3) "continue"を使わないでください! 4)ループ内で照会せずに複数の値を挿入することができます –

+0

@DamienPirsyそれを行う方法?? – Ken

答えて

0

トリムは、すべてのカンマを削除します。 '、'は文字列内で、 '、'で爆発しています。 $ _POST ['rp_product']は配列を直接返します。単純にforeachを使って配列をブラウズして挿入することができます。

+0

コードを入力できますか? – Ken

+0

$ ids = $ _ POST ['rp_product']; foeach($ idを$ idとして){insert into Table $ id}これが一般的なコードです。特定のコードが必要な場合は、私はあなたを与えることができます。 – Anil

+0

私は問題を発見した..そのデータベースのプライマリキー上で..ありがとう。 – Ken