【问题标题】:uploading csv not worked properly上传 csv 无法正常工作
【发布时间】:2015-08-04 10:54:41
【问题描述】:

当我上传 csv 文件时,只上传第一个数据。 这是我的控制器。

public function uploadbusinesstype() 
   {

    $config['upload_path'] = APPPATH.'/assets/upload/';
    $config['allowed_types'] = 'csv';
    $config['max_size']  = '5000';
    $replace = '"';

    $this->load->library('upload', $config);
    $this->load->database();

    if ( ! $this->upload->do_upload('file_name'))
    {
        $error = array('error' => $this->upload->display_errors());
     $this->session->set_flashdata('msg_excel','Choose a .csv file to upload');
         redirect(base_url().'admin/businesstype/managecategories'); 
    }
 else

    {
       $data = array('upload_data' => $this->upload->data());
       $userfile = $data['upload_data']['file_name'];
       $this->load->library('csvreader');
       $upload_data = $this->upload->data(); 
       $file =  $upload_data['full_path'];
       $file_name =  $upload_data['userfile']; 
       $data = $this->csvreader->parse_file($file);
      foreach($data as $row)
      {
            if($row['main_type_name']=='')
       {
        $this->session->set_flashdata('msg_excel','Please check the Type Name.It is empty');
         redirect(base_url().'admin/businesstype/managecategories');     
     }

    else if(!preg_match("/^[a-zA-Z& ]+$/",$row['main_type_name']))
     {
      $this->session->set_flashdata('msg_excel','Please check the Type Name.Only alphabets are allowed');
         redirect(base_url().'admin/businesstype/managecategories');   
     }

     else
     {

          $results_array = array(
                           'type_id' => $row['type_id'],
                           'main_type_name' => $row['main_type_name'] 
                           );  

           $this->load->model('admin/businesstype_model');    
           $this->businesstype_model->catupload($results_array);
     }
            $success_message='Successfully Upload!';
            $this->session->set_flashdata('success_message',$success_message); 
            redirect(base_url().'admin/businesstype/managecategories');                  
      }      
      } 
      }

这是我的模特

function catupload($results_array)
{
    $this->db->insert('cr_main_shop_type', $results_array);
}

这里有主要类型名称。当我在 csv 中将配件、手表和手机作为主要类型名称时。只有第一个值会进入数据库。

【问题讨论】:

    标签: php codeigniter mysqli


    【解决方案1】:

    试试这个..

    将所有值添加到数组并将数组传递给模型“businesstype_model”

    $results_array=array();
        foreach($data as $row)
          {
                if($row['main_type_name']=='')
           {
            $this->session->set_flashdata('msg_excel','Please check the Type Name.It is empty');
             redirect(base_url().'admin/businesstype/managecategories');     
         }
    
        else if(!preg_match("/^[a-zA-Z& ]+$/",$row['main_type_name']))
         {
          $this->session->set_flashdata('msg_excel','Please check the Type Name.Only alphabets are allowed');
             redirect(base_url().'admin/businesstype/managecategories');   
         }
    
         else
         {
    

    //将值存储到数组中

              $results_array[] = array(
                               'type_id' => $row['type_id'],
                               'main_type_name' => $row['main_type_name'] 
                               );  
    
    
         }
         if(count($results_array))
         {
         $this->load->model('admin/businesstype_model');    
        $this->businesstype_model->catupload($results_array);
        }
                $success_message='Successfully Upload!';
                $this->session->set_flashdata('success_message',$success_message); 
                redirect(base_url().'admin/businesstype/managecategories');                  
          } 
    

    【讨论】:

    • 检查并告诉我
    【解决方案2】:

    其他

     {
      $results_array = array(
                      'type_id' => $row['type_id'],
                      'main_type_name' => $row['main_type_name'] 
                           );    
           $this->load->model('admin/businesstype_model');    
          $this->businesstype_model->catupload($results_array);
     }
    }      
      $success_message='Successfully Upload!';
      $this->session->set_flashdata('success_message',$success_message); 
      redirect(base_url().'admin/businesstype/managecategories')
    } 
    }
    

    我就是用这个方法搞定的

    【讨论】:

      猜你喜欢
      • 2015-11-21
      • 2014-04-03
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      相关资源
      最近更新 更多