我知道如何使用php從excel中獲取數據到mysql。請通過下面的Excel圖表已經看清楚:獲取Excel行數據到php的mysql列
我想輸入的數據在MySQL見下表。 從excel文件列D,E,F,G數據將行插入mysql表中&列A,B,C & H將作爲列輸入,但將按照行號排列爲A,B,C & D
我覺得我所要求的有點複雜。但請嘗試提供一些想法或建議如何做到這一點。我無法更改excel文件,因爲有很多文件需要以這種方式進行。
我知道如何使用php從excel中獲取數據到mysql。請通過下面的Excel圖表已經看清楚:獲取Excel行數據到php的mysql列
我想輸入的數據在MySQL見下表。 從excel文件列D,E,F,G數據將行插入mysql表中&列A,B,C & H將作爲列輸入,但將按照行號排列爲A,B,C & D
我覺得我所要求的有點複雜。但請嘗試提供一些想法或建議如何做到這一點。我無法更改excel文件,因爲有很多文件需要以這種方式進行。
基本上Excel中的一行將在MySQL中插入/更新4行。 可以使用PhpSpreadsheet來輕鬆迭代Excel文件。
邏輯在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']]);
}
希望你有這個想法。
嗨,謝謝你的迴應。作爲一個初學者,你能否給我完整的代碼/腳本,這讓我有點難以理解。 –
完整的工作腳本僅用於複製/粘貼?我喜歡慈善,但很少代碼:)我給你的方法,開始思考。 StackOverflow不是免費的編碼服務。 – Marcodor
下面的代碼,現在它很好。
$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
問題的狀態是什麼?如果解決了這個問題,應該通過接受答案來標記爲解決問題。如果你不知道如何,請詢問。只需在答案旁邊勾上灰色複選標記,直到它變成綠色即可。 –
所有這些代碼在哪裏? –