将excel colls导入sql

时间:2017-06-23 07:21:25

标签: php mysql excel csv

我正在寻找创建脚本来上传CSV文件或xls并插入数据库。我已经成功到现在为止,但是我

ID   CODE   CAP1   CAP2   CAP3
1    AA      50     60     70
2    BB      80     90     100
3    AA             120    130

我想做的是将它插入到像这样的mysql表tbl_dimensions中:

RECID   DRAFT_IMPORT   CODE   ID    HEADER    VALUE
1          XXXXX       AA      1     CAP1      50
2          XXXXX       AA      1     CAP2      60
3          XXXXX       AA      1     CAP3      70
4          XXXXX       BB      2     CAP1      80
5          XXXXX       BB      2     CAP2      90
6          XXXXX       BB      2     CAP3      100
7          XXXXX       AA      3     CAP1      NULL/0
8          XXXXX       AA      3     CAP2      120
9          XXXXX       AA      3     CAP3      130

基本上不是在SQL中创建一个宽表,而是想在表中创建一个列表,但我需要保留项目Code,AA,BB等。可以多次使用相同的代码,所以我想使用CSV / XLS中的行nr来协调来自CAP1,CAP2,CAP3的值。 Cap1,2 3,可以是任何东西,每天都有变化,所以我不能为每个将要出现的选项定义足够宽的表。

非常感谢

1 个答案:

答案 0 :(得分:0)

我已经设法找出可以使用数组。我仍然没有对它进行排序,但我会把我的代码放在这里,也许你可以帮助我。

combination

我的csv文件如下所示:

<?php
   function csv_to_array($filename='', $delimiter=',') {
    if(!file_exists($filename) || !is_readable($filename))      return
   FALSE;       $header = NULL;     $data = array();    if (($handle =
   fopen($filename, 'r')) !== FALSE)    {       while (($row =
   fgetcsv($handle, 1000, $delimiter)) !== FALSE)       {           if(!$header)
                $header = $row;
                        else
                $data[] = array_combine($header, $row);
                    }       fclose($handle);    }   return $data; } /**  * Example  */ print_r(csv_to_array('example.csv'));

   ?>

我想要做的是插入像这样的

这样的mysql表
cod_piesa, lungime, latime, inaltime
gl, 5000,, 150
fd, 3000, 2000, 100

mysql表名为tbl_drafts,它包含draft_id,row,cod_piesa,header,value列。 draft_id是我将生成的临时ID,例如$ draft_id = 1

插入后我需要将他重定向到一个新页面,在那里我将比较不同的结果,让我们说'verification.php'。

非常感谢您的所有答案

暂时我正在使用上传到服务器上的文件,但我需要手动上传选项,访问者可以上传CSV或Excel文件。

我相信如果解决这个问题会有很多人帮助我。 我看了一下换位选项,但我无法弄明白。