如何将逗号分隔值作为单独的记录添加到数据库?

时间:2012-02-03 07:28:21

标签: php mysql

我有一个名为product_table的表,如下所示,包含两个字段product_id和comp_prod

comp_prod的值将以逗号分隔值(如4,3

)发送

但是product_id的值将是常见的

我想将逗号分隔值作为单独的行插入,如下所示,product_id为common。我怎么能用php和mysql做到这一点?

product_table

+-----+----------+-----------------+    
| id | product_id  |comp_prod      |   
+-----+----------+-----------------+    
|1  |      339     |  4            |   
|2  |      339     |  5            |   
+------------+---------------------+     

5 个答案:

答案 0 :(得分:3)

$pro=5;

$comp_proSplit= explode(",", $comp_pro);

$cnt=count($comp_proSplit);

for($i=0;$i<$cnt;$i++)
{
mysql_query("insert into product_table(product_id,comp_prod) 
values ($pro, $comp_proSplit[$i])");
}

希望有所帮助

答案 1 :(得分:1)

使用explode函数将字符串拆分为数组。

答案 2 :(得分:1)

使用explode功能

答案 3 :(得分:1)


$sql = array;
$yourArrFromCsv = explode(",", $yourCSV);
//then insert to db
foreach( $yourArrFromCsv as $row ) {
    $sql[] = '('.$compProdId.', '.$row.')';
}
mysql_query('INSERT INTO table (comp_prod, product_id) VALUES '.implode(',', $sql));

你的意思是那样吗

答案 4 :(得分:1)

正如其他人提到的那样,然后循环它。这是一个例子。可能有一个错误,但这个想法就在那里。

foreach($arrayOfEachRowInCSV as $array){
   $product_id = $array['product_id'];
   $array_comp_prod = explode(",", $array['comp_prod_comma_seperated']);
   foreach($array_comp_prod as $comp_prod){
        $sql = "INSERT INTO table_name (product_id, comp_prod) VALUES('{$product_id}','{$comp_prod}')";
   }
}

我希望这会有所帮助