1

我导入一个 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 文件中。导入文件。在那里我需要使用下拉列表中的变量。我想把它保存到我的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);

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

4

1 回答 1

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,电子邮件)

编辑2:

如果表有列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 的列创建(在用户提交之后)列名列表。

于 2013-05-12T15:40:09.037 回答