Jadual Kandungan
1.1 获取文件
1.2 遍历每条记录
1.3 重定向
1.1 Dapatkan fail
1.2 Lintas setiap rekod
1.3 Ubah hala
Rumah pembangunan bahagian belakang tutorial php Meneruskan pembangunan Alat Import CSV Produk OpenCart: Bahagian 2

Meneruskan pembangunan Alat Import CSV Produk OpenCart: Bahagian 2

Aug 31, 2023 pm 08:53 PM

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:

继续开发 OpenCart 产品 CSV 导入工具:第 2 部分

  1. Navigasi ke admin/controller/catalog/product.php. admin/controller/catalog/product.php
  2. 找到 importCSV() 函数,其中 我们在上一个教程中创建了。

  3. 放置 if (($this->request->server['REQUEST_METHOD'] == 'POST') ) {} 后面,以确保代码部分只有在提交上述表单的情况下才会被执行。
  4. 在上面的代码块中,我们将添加下面逐步解释的代码。

1.1 获取文件

以下代码打开提交的 CSV 文件并将其作为只读文件处理。

<?php
$file = $_FILES['csv']['tmp_name'];
$handle = fopen($file,"r");
?>
Salin selepas log masuk

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
    }
}
?>
Salin selepas log masuk

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	
?>
Salin selepas log masuk

到目前为止,我们已经 创建了一个仅上传 CSV、逐行读取其数据并将其解析到模型的函数。现在我们需要创建一个控制器代码中定义的模型,该模型负责将解析后的数据保存到数据库中。

2. 模型文件

  1. 导航至 admin/model/catalog/product.php
  2. 在其中创建一个名为 importCsvData($data)
  3. 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
    }
}		

?>
Salin selepas log masuk

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. 🎜 rrreee

1.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 ke 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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

11 skrip pemendek URL terbaik PHP (percuma dan premium) 11 skrip pemendek URL terbaik PHP (percuma dan premium) Mar 03, 2025 am 10:49 AM

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

Bekerja dengan Data Sesi Flash di Laravel Bekerja dengan Data Sesi Flash di Laravel Mar 12, 2025 pm 05:08 PM

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-

Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React Mar 04, 2025 am 09:33 AM

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

Respons HTTP yang dipermudahkan dalam ujian Laravel Respons HTTP yang dipermudahkan dalam ujian Laravel Mar 12, 2025 pm 05:09 PM

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' =>

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Mar 14, 2025 am 11:42 AM

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

12 skrip sembang php terbaik di codecanyon 12 skrip sembang php terbaik di codecanyon Mar 13, 2025 pm 12:08 PM

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

Pengumuman Penyiasatan Situasi PHP 2025 Pengumuman Penyiasatan Situasi PHP 2025 Mar 03, 2025 pm 04:20 PM

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

Pemberitahuan di Laravel Pemberitahuan di Laravel Mar 04, 2025 am 09:22 AM

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

See all articles