将csv文件导入mysql选择列

时间:2013-05-12 15:32:36

标签: php mysql csv csv-import

我导入一个csv文件并在左侧写下csv的标题。在右侧,我创建了一个下拉列表。在下拉列表中,我有我的mysql列的值。我想在下拉列表中选择相应的CSV标题。

$handle = fopen($dateinameneu, "r");
    $data = fgetcsv ($handle, 500, $spaltentrennzeichen);
    for ($i = 0, $j = count($data); $i < $j; $i++) {
    echo '
     <div class="control-group">
                        <label class="control-label" for="'.$data[$i].'">'.$data[$i].'</label>
                        <div class="controls">
                          <select id="'.$data[$i].'" name="'.$data[$i].'">
                            <option value="">Choose</option>
                            <option value="email">email</option>
                            <option value="phone">phone</option>                            
                          </select>
                        </div>
                      </div>
    ';

现在我把它发布到一个新的php文件中。 importfile。在那里,我需要使用下拉列表中的变量。我想将它保存到我的mysql中。但我不知道如何使用它。

$sql="
    LOAD DATA LOCAL INFILE '$datei'
    INTO TABLE empfaenger
    FIELDS TERMINATED BY '$spaltentrennzeichen'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    SET
    email = '###'
mysql_query($sql,$db);

###我需要在下拉列表中插入我之前选择的列名称,即电子邮件。

1 个答案:

答案 0 :(得分:0)

所以基本上你想告诉mysql你在csv中给出的表的哪些列?使用http://dev.mysql.com/doc/refman/5.1/de/load-data.html很容易,只需在语句末尾给出要插入的列()。由于你没有给出表格结构,我不得不猜测。

LOAD DATA LOCAL INFILE '$datei'
INTO TABLE empfaenger
FIELDS TERMINATED BY '$spaltentrennzeichen'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(empfaenger_name, $value_column_name )
set empfaenger_id = null
;

csv有多少个列,哪个列有哪些列?如果您给这些信息,您将得到更好的答案。

编辑: 要丢弃不需要的列,只需将它们放入变量中即可。

(@ somecol0,@ somecol1,@ somecol2,email)

EDIT2:

如果表格包含empfaenger_id, email, phone列。 csv给出为(empfaenger_id,email),然后语句为

LOAD DATA LOCAL INFILE '$datei'
INTO TABLE empfaenger
FIELDS TERMINATED BY '$spaltentrennzeichen'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(empfaenger_id, email ) # that line is variable!
;

如果你的网页上说,csv是empfaenger_id,电话,声明是

LOAD DATA LOCAL INFILE '$datei'
INTO TABLE empfaenger
FIELDS TERMINATED BY '$spaltentrennzeichen'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(empfaenger_id, phone ) # that line is variable!
;

您只需在SQL表中创建(在用户提交后)csv列的列名列表。