2017-08-01 33 views
0

コントローラ:partner.phpcodeigniterを使用してcsvファイルのデータをmysqlデータベースにインポートする方法は?

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 
class Partner extends CI_Controller 
{ 
    function __construct() 
    { 
     parent :: __construct(); 
     $this->load->helper(array('form', 'url', 'captcha', 'email')); 
    } 

    public function student() 
    { 
     if($this->input->post('save')) 
     { 
      $client_id[0]['client_id'] = $this->session->userdata('client_id'); 
      $radio = $this->input->post('class'); 
      $client = $client_id[0]['client_id']; 


      $filename = $_FILES['students_list']['name']; 

      $path = FCPATH."resources/imported_file/".$filename; 
      $move=move_uploaded_file($_FILES['students_list']['tmp_name'],$path.$_FILES['students_list']['name']); 
      if($_FILES["students_list"]["size"] > 0) 
      { 
       $file = fopen($path, "r"); 
       while (($importdata = fgetcsv($file))) 
       { 
        $data = array(
         'firstname' => $importdata[0], 
         'email' =>$importdata[1], 
         'phone' =>$importdata[2], 
         'uploaded_date' => date('d-m-y'), 
         'twelfth_year' => date('Y'), 
         'client' => $client[0]['client_id'], 
         'class' => $radio 
        ); 
        $this->db->insert('students',$data); 
       }      
       fclose($file); 
       $this->session->set_flashdata('err_csv', '<p style="color: #87b87f;font-weight: bold;text-align:center;">Data are imported successfully..</p>'); 
      } 
      else 
      { 
       $this->session->set_flashdata('err_csv', '<p style="color: red;font-weight: bold;text-align:center;">Something went wrong..</p>'); 
      } 
     } 
    } 

ビュー:

<form method="post" enctype="multipart/form-data"> 
    <input type="file" id="students_list" name="students_list" accept=".csv" class="required"> 
    <input type="submit" name="save" id="save" value="save" class="btn btn-info" /> 
</form> 

私はcsvファイルを持っていると私は、MySQLデータベースにcsvファイルのデータをインポートしたいです。しかし、私はcsvファイルをアップロードし、送信をクリックすると、画像に示すようにエラーが発生します。

enter image description here

だから、どのように私はこのエラーを削除することができますか?私を助けてください。

はあなたが

+0

重複の可能性https://stackoverflow.com/questions/31959422/warning-fgetcsv-expects-parameter-1-to-be-resource-boolean -given-in-c – Virb

+0

このCSV解析ライブラリを使用します。 https://github.com/parsecsv/parsecsv-for-php –

答えて

0

アップロードファイル用のCodeIgniterのファイルアップロードライブラリを使用して、インポートCSVファイルのphpexcelライブラリを使用する必要がありますありがとうございました。

+1

コメントにこれを記載してください。 – Virb

+0

アップロードファイルにcodeigniterファイルアップロードライブラリを使用し、import csvファイル用にphpexcelライブラリを使用する必要があります。 –

+0

@marmikpatel:Virbはあなたに答えを述べようとしていますが、解答が1行でコードデモンストレーションなしであれば、答えとして言及する代わりにコメントで言及してください。だからあなたは自分の答えではなく、その質問の下でコメントしなければならない。 – kishor10d

0

CodeIgniterのアップロードライブラリを使用してファイルをアップロードできます。$ worksheetは配列です。すべてのデータが配列に格納されているだけで、ワークシートを印刷します。

class Excelreader_controller extends CI_Controller 
{ 

    function __construct() 
    { 
     parent::__construct(); 
     $this->load->library('upload'); 
    } 

    function uploadFile() 
    { 
     $config['upload_path'] = './upload/'; 
     $config['allowed_types'] = 'xls|csv';  

     $this->upload->initialize($config); 
     if($this->upload->do_upload('uploadfile')) 
     { 
      $target_path = "upload/" . basename($_FILES["uploadfile"]["name"]); 
      if(move_uploaded_file($_FILES["uploadfile"]["tmp_name"], $target_path)) { 
       $file=$_FILES["uploadfile"]["name"]; 
       $csv_file="upload/".$file; 
       $worksheet=array(); 
       if (($getfile = fopen($csv_file, "r")) !== FALSE) 
       { 
        $worksheet[] = fgetcsv($getfile, 1000, ","); 
        while (($data = fgetcsv($getfile, 1000, ",")) !== FALSE) 
        { 
         $worksheet[]=$data; 

        } 
       } 

      } 
      else 
      { 
       echo "not uploaded"; 
      } 
     } 
     else 
      echo $this->upload->display_errors(); 

    } 
} 
0
<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 
class Partner extends CI_Controller 
{ 
function __construct() 
{ 
    parent :: __construct(); 
    $this->load->helper(array('form', 'url', 'captcha', 'email')); 
    $this->load->library('upload'); 
    $this->load->database(); 
    $this->load->helper('file'); 
} 

public function student() 
{ 
    if(isset($_POST["submit"])) 
    { 

if($_FILES['file']['name']) 
           { 
            $filename = explode(".", $_FILES['students_list']['name']); 

     if($filename[1] == 'csv') 
            { 

             $fp = fopen($_FILES['file']['tmp_name'],'r') or die("can't open file"); 

             while($data = fgetcsv($fp,1024)) 
             { 
              for ($i = 0, $j = count($data); $i < $j; $i++) 
              { $item['firstname']=$data[0]; 
               $item['email'] = $data[1]; 
               $item['phone'] = $data[2]; 

               $item['uploaded_date'] = $data[3]; 
               $item['twelfth_year'] = $data[4]; 
               $item['client'] = $data[5]; 
               $item['class'] = $data[6]; 
              } 
             $data = array('firstname' => $item['firstname'], 
               'email' => $item['email'], 
                 'phone' => $item['phone'], 
                 'uploaded_date' => $item['uploaded_date'], 
                 'twelfth_year' => $item['twelfth_year'] , 
                 'client' => $item['client'] , 
                 'class' => $item['class'], 

             $data['crane_features']=$this->db->insert('students',$data); 

             } 

            echo "<script type='text/javascript'>alert('FILE UPLOADED SUCCESSFULLY')</script>"; 
            fclose($fp) or die("can't close file"); 
            $data['success']="success"; 
            return $data; 


            } 
            } 

            else{ 
              echo "<script type='text/javascript'>alert('TRY UPLOADING *.csv FILE')</script>"; 
              $this->load->view('uploadcssview'); 
             } 
           } 

         } 
        } 

ビューファイル

 <form action = "<?php echo site_url('Partner/student'); ?>" 
     method="post" enctype="multipart/form-data" > 
      <center> 
     <label>SELECT A CSV File:</label></center> 

     <div class="form-group"> 
     <div class="col-md-3"></div> 
     <div class="col-md-4"><br/> 
     <input type="file" name="file" id="file" /> 
     </div> 
     <br/> 
     </form> 

      <div class="col-md-1"> 
      <input type="submit" name="submit" value="Import" class="btn btn- 
     info" /> 
      </div> 
関連する問題