-4

使用 CSV 上传功能,我可以将所有重复数据上传到我的 MySQL 数据库。假设我有一些字段,例如:

+-----+--------+-----+--------+
| 年份 | 月 | 天 | 图 |
+-----+--------+-----+--------+
  2012 01 01 200
  2012 01 02 303
  2012 01 03 632
  ...
  2012 01 31 323
+-----+--------+-----+--------+

在我的数据表中,我有两个共同点:

CSV 对我的作用是:

2012,01,01,200
2012,01,02,303
2012,01,03,632
...
2012,01,31,323

年份和月份字段中的纯粹重复。如果我们可以通过任何方式在 CSV 中使这两个字段通用,那么对于输入用户来说会好得多。

所以底线是:

  • 我们如何使用 CSV 上传插入一些输入较少的常见字段?
4

2 回答 2

0

我真的不能说这将如何与你所说的 wordpress 插件集成,但要采用一种技术,在空白列中填充上一条记录的值,你可以做这样的事情(假设有一个标题行在具有唯一字段名称的 csv 文件)。

<?php
$fp = fopen($csvFile, "r");
// get the header line

$header = fgetcsv($fp);
// seed the previous record array
$previousRec = array_combine($header, array_fill(0, count($header), ""));

while ($row = fgetcsv($fp)){
    $row = array_combine($header, $row);
    // filter with a closure requires php 5.3
    $filtered = array_filter($row, function($a){ return trim($a) !== "";});

    // merge the new data on top of the old with filtered values gone.
    $row = array_merge($previousRec, $filtered);

    // do something with row

    // store the row as the previousRec for the next time arround.
    $previousRec = $row;
} 
于 2013-07-15T04:58:10.403 回答
0

正如@DevZer0 所建议的那样,CSV 不是空字段(或缺失字段)的好选择。

如果你想使用基于文本的解决方案,你可以尝试 JSON/XML。

如果你想使用托管方式,你可以尝试使用 DBMS,例如 MySQL / MSSQL。

或者上面的组合,SQLite,一个基于文件的数据库系统。

于 2013-07-15T04:49:09.660 回答