Я создал php-функцию для импорта CSV / Excel-файла в базу данных MYSQL через CodeIgniter.
Уровень важности: предупреждение
- Интеграция доктрины в CodeIgniter 3 - ошибка сущности
- Suitecrm - PHP-код в формате pdf
- Доступ к свойствам класса с помощью пробелов
- MTA для получения писем, в PHP
- " child pid XXXX сигнал выхода Ошибка сегментации (11)" в apache error.log
Сообщение: pathinfo () ожидает, что параметр 1 будет строкой, заданный массив
Имя файла: core / Loader.php
Номер строки: 759
это мое кодирование для импорта CSV
class Upload_services extends CI_Model { function __construct() { parent::__construct(); } function upload_sampledata_csv() { if(isset($_POST['submit'])) { $fp = fopen($_FILES['userfile']['tmp_name'],'r') or die("can't open file"); while(($line = fgetcsv($fp, 10000, ",")) !== FALSE) { //check whether there are duplicate rows of data in database $prevQuery = array( 'articleno' => $line[0], 'oldarticle' => $line[1], 'product_description' => $line[2], 'pro_type' => $line[3], 'cust_group' => $line[4] , 'size' => $line[5] , 'colour' => $line[6], 'output' => $line[7], 'process_description' => $line[8], 'material_part' => $line[9] ); $where = array( 'articleno' => $line[0], 'process_description' => $line[8], 'material_part' => $line[9] ); $q = $this->db->select("*") ->where($where) ->from('sindi_productprocess_temp'); $prevResult = $this->db->get(); if($prevResult->num_rows > 0){ //update process data $set =array('output'=>$line[7]); $where = array( 'articleno' => $line[0], 'process_description' => $line[8], 'material_part' => $line[9] ); $query = $this->db->get_where('sindi_productprocess_temp', array('output ='=>$line[7]))->result(); }else{ $data = array( 'articleno' => $line[0], 'oldarticle' => $line[1], 'product_description' => $line[2], 'pro_type' => $line[3], 'cust_group' => $line[4] , 'size' => $line[5] , 'colour' => $line[6], 'output' => $line[7], 'process_description' => $line[8], 'material_part' => $line[9] ); $data['crane_features']=$this->db->insert('sindi_productprocess_temp', $data); } } fclose($fp) or die("can't close file"); } } }
это мой файл CSV, который еще не обновляет CSV-файл
Я хочу изменить выход для AB02-OKE-01-09-Y0-001 от 500 до 200 для material_part = Top PVC Sheet-Left и 300 для Top PVC Sheet-Right
когда я изменяю код, как показано ниже, он работает, но вместо обновления существующих данных он вставляет дубликаты данных
if($prevResult->num_rows > 0){ //update process data $data = array( 'articleno' => $line[0], 'oldarticle' => $line[1], 'product_description' => $line[2], 'pro_type' => $line[3], 'cust_group' => $line[4] , 'size' => $line[5] , 'colour' => $line[6], 'output' => $line[7], 'process_description' => $line[8], 'material_part' => $line[9] ); $set =array('output'=>$line[7]); $this->db->where = array( 'articleno' => $line[0], 'oldarticle' => $line[1], 'product_description' => $line[2], 'pro_type' => $line[3], 'cust_group' => $line[4] , 'size' => $line[5] , 'colour' => $line[6], 'process_description' => $line[8], 'material_part' => $line[9] ); $this->db->update('sindi_productprocess_temp',$set);