我有一个名为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 |
+------------+---------------------+
答案 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}')";
}
}
我希望这会有所帮助