在上一篇教程中,我们讨论了如何 实现一个导入工具,在其中我们创建了一个导入按钮及其前端模板。今天我们将学习如何将计算机中的批量数据直接导入到 OpenCart 系统中。
让我们首先考虑层次结构。在之前的教程中,我们实现了导出工具,它允许用户 下载 CSV 表格并根据需要进行替换。之后我们实施了 导入工具,允许用户上传/导入已编辑的文件/数据。 之前我们实现了布局。在这篇文章中,我们将 实现该功能。
在上一个教程中,我们创建了一个控制器,它将我们推送到上传表单的布局。在布局的视图文件中,我们有一个上传输入,用户可以在其中上传 CSV,如下所示:
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
admin/model/catalog/product.phpimportCsvData($data)
在其中创建一个名为 <?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 } } ?>
结论 所以,今天的教程就是关于 为进出口系统提供完整的解决方案。我们提供这样的解决方案,在 哪些用户可以编辑/更新他们的数据。该解决方案非常易于使用并且 也实施。我期待您的反馈。请随时在下面留下评论或疑问。谢谢!
🎜🎜以上是继续开发 OpenCart 产品 CSV 导入工具:第 2 部分的详细内容。更多信息请关注PHP中文网其他相关文章!