Dalam tutorial sebelum ini, kita telah membincangkan bagaimana Laksanakan alat import di mana kami mencipta butang import dan templat bahagian hadapannya. Hari ini kita akan belajar cara mengimport data kelompok daripada komputer anda terus ke dalam sistem OpenCart.
Mari kita pertimbangkan hierarki dahulu. Dalam tutorial sebelumnya, kami melaksanakan alat eksport, yang membolehkan pengguna Muat turun jadual CSV dan gantikan mengikut keperluan. Selepas itu kita laksanakan Alat import yang membolehkan pengguna memuat naik/mengimport fail/data yang diedit. Sebelum ini kami melaksanakan susun atur. Dalam artikel ini kita akan Laksanakan fungsi ini.
Dalam tutorial sebelumnya, kami mencipta pengawal yang mendorong kami ke susun atur borang muat naik. Dalam fail paparan susun atur kami mempunyai input muat naik di mana pengguna boleh memuat naik CSV seperti ini:
admin/controller/catalog/product.php
. admin/controller/catalog/product.php
。importCSV()
函数,其中
我们在上一个教程中创建了。
if
(($this->request->server['REQUEST_METHOD'] == 'POST') ) {}
后面,以确保代码部分只有在提交上述表单的情况下才会被执行。以下代码打开提交的 CSV 文件并将其作为只读文件处理。
<?php $file = $_FILES['csv']['tmp_name']; $handle = fopen($file,"r"); ?>
现在我们需要遍历 CSV 的每一行并将其保存到我们的数据库中。在这方面,我们将循环记录并相应地保存它们。
<?php while ($data = fgetcsv($handle,1000,",","'")) // parses the line it reads for fields in CSV format and returns an array containing the fields read. { if ($data[0]!='') // if column 1 is not empty { $this->model_catalog_product->importCsvData($data); // parse the data to model } else { // in case of errors, put debug code here } } ?>
导入完成后,必须重定向用户,因此以下代码将用户重定向到表单并给出成功消息。
<?php $this->session->data['success'] = 'CSV Successfully Imported!'; //success message $this->redirect($this->url->link('catalog/product', 'token=' . $this->session->data['token'] . $url, 'SSL')); //redirected to the product page ?>
到目前为止,我们已经 创建了一个仅上传 CSV、逐行读取其数据并将其解析到模型的函数。现在我们需要创建一个控制器代码中定义的模型,该模型负责将解析后的数据保存到数据库中。
admin/model/catalog/product.php
。importCsvData($data)
importCSV()
, di mana
Kami menciptanya dalam tutorial sebelumnya.
if
(($this->request->server['REQUEST_METHOD'] == 'POST') ) {}
untuk memastikan bahagian kod hanya akan dilaksanakan apabila borang di atas diserahkan. Dalam blok kod di atas, kami akan menambah kod yang dijelaskan langkah demi langkah di bawah.
1.1 Dapatkan fail
Kod berikut membuka fail CSV yang diserahkan dan memprosesnya sebagai fail baca sahaja.
<?php $product_id = $data[0]; $model = $data[1]; $name = $data[2]; $quantity = $data[3]; if($product_id!='') { $query = $this->db->query("UPDATE `".DB_PREFIX."product` SET model='".$model."',quantity='".(int)$quantity."' WHERE product_id='".$product_id."'");//updating product quantity & its model if($name) { $query = $this->db->query("UPDATE `".DB_PREFIX."product_description` SET name='".$this->db->escape($name)."' WHERE product_id='".$product_id."'"); // update the name of the product } } ?>
admin/model/catalog/product.php
. 🎜
🎜Buat fungsi awam bernama importCsvData($data)
di dalamnya. 🎜
🎜 Di dalam fungsi model kami akan menambah kod ini dengan beberapa pertanyaan untuk menyimpan data. 🎜
🎜
rrreee
🎜Kesimpulan🎜
🎜Jadi, tutorial hari ini adalah mengenai
Menyediakan penyelesaian lengkap untuk sistem import dan eksport. Kami menyediakan penyelesaian sedemikian dalam
Pengguna yang boleh mengedit/mengemas kini data mereka. Penyelesaian ini sangat mudah digunakan dan
Juga dilaksanakan. Saya mengharapkan maklum balas anda. Sila tinggalkan komen atau soalan di bawah. Terima kasih! 🎜🎜🎜🎜🎜Atas ialah kandungan terperinci Meneruskan pembangunan Alat Import CSV Produk OpenCart: Bahagian 2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!