MYSQL在列上插入相同ID不同的爆炸

时间:2017-02-24 09:32:40

标签: php mysql excel explode

我需要帮助使我的脚本在导入文档中的特定符号后自动排序ID,呃,让我解释一下。

我有一个excel格式文档,其中包括

ID____PRODUCT___________
1_____prod1*prod2*prod3_
2_____prod1*prod2*prod3_
3_____prod1*prod2*prod3_

所以我需要做的是,将它们插入到mysql中,看起来像这样

ID____PRODUCT____
1_____prod1______
1_____prod2______
1_____prod3______
2_____prod1______
2_____prod2______
2_____prod3______
3_____prod1______
3_____prod2______
3_____prod3______

所以需要在每个*之后制作一个新的对象,到目前为止我已经制作了这个脚本,它将它排序为2列,只需要让其他列用相同的id对它进行排序。任何想法?

        while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
    {
        $count++;                                     

        $expl=explode(";",$emapData[0]);    $string1 = $expl[0];    $string2 = $expl[1];

        if($count>1){                               
          $sql = "INSERT into products(a,b) values ('$string1','$string2')";
          mysql_query($sql);
        }                                          
    }

它是一个csv文件,所以它分开了;这就是为什么我需要爆炸它。

所以我只需要用新的*插入每个产品,我可以想象使用另一个爆炸,但是如何分配它以便将它插入到具有与第一个具有相同ID的新列中?

1 个答案:

答案 0 :(得分:0)

试试这个

 //connect using mysqli
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
    while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
    {
        $count++;                                     

        $expl=explode(";",$emapData[0]);    
        $string1 = $expl[0];//ID like 1    
        $string2 = $expl[1];//the prod1*prod2*prod3
        $arr_of_products = explode("*",$string2);
        foreach ($arr_of_products as $value) {
            $sql = "INSERT into products(a,b) values ('$string1','$value')";
            //mysql_query($sql); do not use it
            $result = $mysqli->query($sql);
        }

    }