2012-04-14 2 views
0

В основном я хотел это на моем столе,Вставка массив данные в таблицу тузды

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

меня флажки

<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.

Я использую этот код PHP,

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); 
     } 
} 

Проблема заключается в том, что только первый проверил флажок только вставлен. Что, кажется, проблема или у вас есть другое решение? Пожалуйста помоги.

+0

Sidenotes: 1) ltrim + rtrim = trim. 2) почему вы взорвали, а затем взорвали массив, а не просто контактировали с ним напрямую? 3) можно избежать использования «continue» и просто использовать if! = ""; 4) вы можете вставить несколько значений без запроса в цикле –

+0

@DamienPirsy Как это сделать? – Ken

ответ

0

отделка удалит все запятые «,» в строке, и вы взорваетесь с помощью «,», как он вернет что-нибудь ????? $ _POST ['rp_product'] будет напрямую возвращать массив. Вы можете просто использовать foreach для просмотра массива и вставки.

+0

Можете ли вы предоставить код для этого? – Ken

+0

$ ids = $ _ POST ['rp_product']; foeach ($ ids as $ id) {вставить в таблицу $ id}. Это общий код. если вам нужен конкретный код, я могу дать вам. – Anil

+0

Я нашел проблему .. ее в базе данных первичный ключ .. Спасибо. – Ken