Path : /var/www/html/kpp2meeting/application/controllers/
File Upload :
Current File : /var/www/html/kpp2meeting/application/controllers/import_member.php

<?php

class Import_member extends MY_Controller {

    function __construct() {
        parent::__construct();
    }

    function index($success = '0') {
        if ($success == '1') {
            $data['msg_text'] = 'นำเข้าข้อมูลสมาชิกเรียบร้อย';
        }
        $data['page_title'] = 'นำเข้าข้อมูลสมาชิก';
        $data['content'] = 'import/import_member_v';
        $this->load->view('template_v', $data);
    }

    //ประมวลผลข้อมูลเกรดแบบรายวิชา
    function process() {
        $this->load->library('Spreadsheet_Excel_Reader');
        $this->load->library('encrypt');

        //ผลการเรียนแบบสรุป
        if ($_FILES["excel_file"]["name"] != "") {
            $file_temp = $_FILES['excel_file']['tmp_name'];
            $file_name = basename($_FILES['excel_file']['name']);

            $ext_file = explode(".", $file_name);
            $ext_file = $ext_file[count($ext_file) - 1];
            $file_name = md5(microtime()) . "." . $ext_file;

            // upload here
            move_uploaded_file($file_temp, "assets/upload/" . $file_name);
            $strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp
            $openFile = $strPath . "/assets/upload/" . $file_name;

            $this->spreadsheet_excel_reader->setOutputEncoding('utf-8');
            $this->spreadsheet_excel_reader->setUTFEncoder('iconv');
            $this->spreadsheet_excel_reader->read($openFile);
            $worksheet = $this->spreadsheet_excel_reader->sheets[0];

            $this->member_data($worksheet, $openFile);
        } else {
            redirect('import_member/index/1');
        }
    }

    function member_data($worksheet, $openFile) {
        //รูปแบบ $worksheet['cells'][แถวที่][คอลัมที่]  โดย Column และ Row เริ่มนับจาก 1 เสมอ
        $numCols = 10; //Fix ไว้เลย
        $numRows = $worksheet['numRows']; //จำนวนแถุว
        $log = '';

        for ($i = 0; $i < $numRows; $i++) {
            $irow = $i + 2;
            if (isset($worksheet['cells'][$irow][1])) {
                $ret = array();
                for ($j = 0; $j < $numCols; $j++) {
                    $icol = $j + 1;
                    if (isset($worksheet['cells'][$irow][$icol])) {
                        $ret[] = $worksheet['cells'][$irow][$icol];
                    } else {
                        $ret[] = '';
                    }
                }

                $this->db->where('code', $ret[6]);
                $depart = $this->db->get('tbdepart')->row_array();

                if (isset($depart['id'])) {
                    $sql = "select * from tbmember where name='" . $ret[0] . "'";
                    $row = $this->db->query($sql)->row_array();

                    $this->db->where('username', $ret[1]);
                    $member = $this->db->get('tbmember')->row_array();
                    $import = true;
                    if (isset($member['id'])) {
                        if ($member['name'] != $ret[0]) {
                            $import = false;
                            $log.=$ret[0] . " ไม่สามารถนำเข้าได้เนื่องจาก ชื่อผู้ใช้งน " . $ret[1] . " มีอยู่ในระบบ <br/>";
                        }
                    }

                    if ($import) {
                        $data = array(
                            'name' => $ret[0],
                            'username' => $ret[1],
                            'password' => $this->encrypt->encode($ret[2]),
                            'position' => $ret[3],
                            'mobile' => $ret[4],
                            'tel' => $ret[5],
                            'depart_id' => $depart['id'],
                            'status' => $ret[7],
                            'mem_type' => $ret[8],
                            'email' => $ret[9]
                        );

                        if (isset($row['id'])) {
                            $this->db->where('name', $ret[0]);
                            $this->db->update('tbmember', $data);
                        } else {
                            $this->db->insert('tbmember', $data);
                        }
                    }
                } else {
                    $log.=$ret[0] . " ไม่สามารถนำเข้าได้เนื่องจาก รหัสแผนก " . $ret[6] . " ไม่มีอยู่ในระบบ <br/>";
                }
            }
        }

        unlink($openFile);

        $data['msg_text'] = 'นำเข้าข้อมูลสมาชิกเรียบร้อย';
        if($log!='') $data['log'] = $log;
        
        $data['page_title'] = 'นำเข้าข้อมูลสมาชิก';
        $data['content'] = 'import/import_member_v';
        $this->load->view('template_v', $data);
    }

}

?>