我知道如何使用 php 从 excel 获取数据到 mysql。请看下面的excel图表:
我想在下面的mysql表中输入数据。从 excel 文件列 D、E、F、G 数据将作为行插入 mysql 表中,列 A、B、C 和 H 将作为列输入,但将遵循行号为 A、B、C 和 D
我觉得我问的有点复杂。但请尝试就如何做到这一点提出一些想法或建议。我无法更改 excel 文件,因为有很多文件要以这种方式进行。
我知道如何使用 php 从 excel 获取数据到 mysql。请看下面的excel图表:
我想在下面的mysql表中输入数据。从 excel 文件列 D、E、F、G 数据将作为行插入 mysql 表中,列 A、B、C 和 H 将作为列输入,但将遵循行号为 A、B、C 和 D
我觉得我问的有点复杂。但请尝试就如何做到这一点提出一些想法或建议。我无法更改 excel 文件,因为有很多文件要以这种方式进行。
在代码下面,现在很好。
$fft1=888;
$fft2=777;
$fft3="";
$fft4=999;
$fft5=100;
$ctnqty=10;
$friendslist = "$fft1,$fft2,$fft3,$fft4";
$id = $fft5;
$friendarray = explode(",", $friendslist);
$frienduserarray = array();
for ($n = 0; $n < count($friendarray); $n++) {
$friendidpush = "('".$id."','".$friendarray[$n]."','".$ctnqty."'),";
array_push($frienduserarray, $friendidpush);
}
$query = "INSERT INTO freddyhipment (style, orderno,ctnqty) VALUES ";
$friendarray = explode(",", $friendslist);
foreach ($friendarray as $order) {
$query .= "('" . $id . "','" . $order . "','" . $ctnqty . "'),";
}
$query = substr($query, 0, -1); // remove trailing comma
基本上,Excel 中的一行将在 MySQL 中插入/更新 4 行。可以使用PhpSpreadsheet轻松迭代 Excel 文件。
in 中的逻辑pseudo-php-code
类似于:
仅用于插入:
// Statement prepare
$DB = new PDO('mysql:host='.$host.';dbname='.$base., $user, $pass);
$ST = $DB->prepare('insert into table(field1, fiel2, ..) values (:field1, :field2, ..)');
// Excel iteration
while ($Row = $Excel->NextRow()) {
$ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['D']]);
$ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['E']]);
$ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['F']]);
$ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['G']]);
}
对于同步:
// Statement prepare
$DB = new PDO('mysql:host='.$host.';dbname='.$base., $user, $pass);
// Update statement
$ST = $DB->prepare('update table set field2 = :field2 where field1 = :field2 and ..)');
// Excel iteration
while ($Row = $Excel->NextRow()) {
$ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['D']]);
$ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['E']]);
$ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['F']]);
$ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['G']]);
}
希望你明白了。