


Meneruskan pembangunan Alat Import CSV Produk OpenCart: Bahagian 2
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.
1. Fail pengawal
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:
- Navigasi ke
admin/controller/catalog/product.php
.admin/controller/catalog/product.php
。 - 找到
importCSV()
函数,其中 我们在上一个教程中创建了。 - 放置
if (($this->request->server['REQUEST_METHOD'] == 'POST') ) {}
后面,以确保代码部分只有在提交上述表单的情况下才会被执行。 - 在上面的代码块中,我们将添加下面逐步解释的代码。
1.1 获取文件
以下代码打开提交的 CSV 文件并将其作为只读文件处理。
<?php $file = $_FILES['csv']['tmp_name']; $handle = fopen($file,"r"); ?>
1.2 遍历每条记录
现在我们需要遍历 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 } } ?>
1.3 重定向
导入完成后,必须重定向用户,因此以下代码将用户重定向到表单并给出成功消息。
<?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、逐行读取其数据并将其解析到模型的函数。现在我们需要创建一个控制器代码中定义的模型,该模型负责将解析后的数据保存到数据库中。
2. 模型文件
- 导航至
admin/model/catalog/product.php
。 - 在其中创建一个名为
importCsvData($data)
Cari fungsi
importCSV()
, di mana
Kami menciptanya dalam tutorial sebelumnya.
Letak 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 } } ?>
1.2 Lintas setiap rekod
Sekarang, kami perlu mengulangi setiap baris CSV dan menyimpannya ke pangkalan data kami. Dalam hal ini, kami akan menggelungkan rekod dan menyimpannya dengan sewajarnya. 🎜 rrreee1.3 Ubah hala
🎜Selepas import selesai, pengguna mesti diubah hala, jadi kod berikut akan mengubah hala pengguna ke borang dan memberikan mesej kejayaan. 🎜 rrreee 🎜Setakat ini kami ada Mencipta fungsi yang hanya memuat naik CSV, membaca data baris demi baris dan menghuraikannya ke dalam model. Sekarang kita perlu mencipta model yang ditakrifkan dalam kod pengawal yang bertanggungjawab untuk menyimpan data yang dihuraikan ke dalam pangkalan data. 🎜 🎜 🎜2.🎜 Fail model🎜 🎜 🎜Navigasi keadmin/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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

URL panjang, sering berantakan dengan kata kunci dan parameter penjejakan, boleh menghalang pelawat. Skrip pemendekan URL menawarkan penyelesaian, mewujudkan pautan ringkas yang sesuai untuk media sosial dan platform lain. Skrip ini sangat berharga untuk laman web individu a

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Ini adalah bahagian kedua dan terakhir siri untuk membina aplikasi React dengan back-end Laravel. Di bahagian pertama siri ini, kami mencipta API RESTful menggunakan Laravel untuk aplikasi penyenaraian produk asas. Dalam tutorial ini, kita akan menjadi dev

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Tinjauan Landskap PHP 2025 menyiasat trend pembangunan PHP semasa. Ia meneroka penggunaan rangka kerja, kaedah penempatan, dan cabaran, yang bertujuan memberi gambaran kepada pemaju dan perniagaan. Tinjauan ini menjangkakan pertumbuhan dalam PHP Versio moden

Dalam artikel ini, kami akan meneroka sistem pemberitahuan dalam rangka kerja web Laravel. Sistem pemberitahuan di Laravel membolehkan anda menghantar pemberitahuan kepada pengguna melalui saluran yang berbeza. Hari ini, kami akan membincangkan bagaimana anda boleh menghantar pemberitahuan ov
