ahmadajah03 Fri Feb 2021 1 year ago

Codeigniter 4 Import Data Dari Excel atau CSV ke MySQL DB

Impor  data dari excel atau csv  ke  CodeIgniter 4. Dalam tutorial ini, Anda akan belajar cara mengimpor data dari excel ke database mysql menggunakan Codeigniter 4.

Terkadang, Anda perlu mengimpor data file csv atau excel dari database di aplikasi codeigniter 4. Jadi, tutorial ini akan membantu Anda selangkah demi selangkah tentang cara mengimpor format Excel dinamis atau data format csv ke dalam database di aplikasi CodeIgniter 4.

Cara Mengimpor Data dari Excel atau CSV ke Database mysql menggunakan Codeigniter 4

  • Unduh Proyek Codeigniter 4
  • Konfigurasi Dasar
  • Buat Tabel di Database
  • Siapkan Kredensial Database
  • Buat Controller
  • Buat Tampilan
  • Buat Rute
  • Mulai Server Pengembangan

Langkah 1: Unduh Proyek Codeigniter 4

Pada langkah ini, Anda akan mengunduh versi terbaru Codeigniter 4, Buka tautan ini https://codeigniter.com/download Unduh Codeigniter 4 penyiapan baru dan unzip pengaturan di sistem lokal Anda xampp/htdocs/. Dan ubah nama folder unduhan "demo"

Langkah 2: Konfigurasi Dasar

Selanjutnya, Anda akan mengatur beberapa konfigurasi dasar pada file app/config/app.php, jadi mari pergi ke application/config/config.php dan buka file ini pada editor teks.

Tetapkan URL Dasar seperti ini

public $baseURL = 'http://localhost:8080';
To
public $baseURL = 'http://localhost/demo/';

Langkah 3: Buat Tabel di Database

Pada langkah ini, Anda perlu membuat tabel dalam database dan juga memasukkan beberapa data untuk mengimplementasikan aplikasi pencarian pelengkapan otomatis di codeiginter 4. Jadi kunjungi panel phpmyadmin Anda dan jalankan kueri sql berikut di dalamnya:

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `city` varchar(255) NOT NULL,
  `status` varchar(255) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Langkah 4: Siapkan Kredensial Database

Pada langkah ini, Anda perlu menghubungkan proyek kami ke database. Anda perlu membuka app/Config/Database.php dan membuka file database.php di editor teks. Setelah membuka file di editor teks, Anda perlu menyiapkan kredensial database di file ini seperti di bawah ini.

public $default = [
    'DSN'      => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'demo',
    'DBDriver' => 'MySQLi',
    'DBPrefix' => '',
    'pConnect' => false,
    'DBDebug'  => (ENVIRONMENT !== 'production'),
    'cacheOn'  => false,
    'cacheDir' => '',
    'charset'  => 'utf8',
    'DBCollat' => 'utf8_general_ci',
    'swapPre'  => '',
    'encrypt'  => false,
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 3306,
];

Langkah 5: Buat Controller

Pada langkah ini, Kunjungi app/Controllers dan buat nama controller Import.php. Di controller ini, Anda perlu menambahkan metode berikut ke dalamnya:

<?php namespace App\Controllers;
use CodeIgniter\Controller;
use CodeIgniter\HTTP\RequestInterface;
use App\Models\Users;
class Import extends Controller
{
public function index() {
return view('import');
}
// File upload and Insert records
public function importFile(){
// Validation
$input = $this->validate([
'file' => 'uploaded[file]|max_size[file,1024]|ext_in[file,csv],'
]);
if (!$input) { // Not valid
$data['validation'] = $this->validator;
return view('users/index',$data); 
}else{ // Valid
if($file = $this->request->getFile('file')) {
if ($file->isValid() &amp;&amp; ! $file->hasMoved()) {
// Get random file name
$newName = $file->getRandomName();
// Store file in public/csvfile/ folder
$file->move('../public/csvfile', $newName);
// Reading file
$file = fopen("../public/csvfile/".$newName,"r");
$i = 0;
$numberOfFields = 4; // Total number of fields
$importData_arr = array();
// Initialize $importData_arr Array
while (($filedata = fgetcsv($file, 1000, ",")) !== FALSE) {
$num = count($filedata);
// Skip first row &amp; check number of fields
if($i > 0 &amp;&amp; $num == $numberOfFields){ 
// Key names are the insert table field names - name, email, city, and status
$importData_arr[$i]['name'] = $filedata[0];
$importData_arr[$i]['email'] = $filedata[1];
$importData_arr[$i]['city'] = $filedata[2];
$importData_arr[$i]['status'] = $filedata[3];
}
$i++;
}
fclose($file);
// Insert data
$count = 0;
foreach($importData_arr as $userdata){
$users = new Users();
// Check record
$checkrecord = $users->where('email',$userdata['email'])->countAllResults();
if($checkrecord == 0){
## Insert Record
if($users->insert($userdata)){
$count++;
}
}
}
// Set Session
session()->setFlashdata('message', $count.' Record inserted successfully!');
session()->setFlashdata('alert-class', 'alert-success');
}else{
// Set Session
session()->setFlashdata('message', 'File not imported.');
session()->setFlashdata('alert-class', 'alert-danger');
}
}else{
// Set Session
session()->setFlashdata('message', 'File not imported.');
session()->setFlashdata('alert-class', 'alert-danger');
}
}
return redirect()->route('/'); 
}
}

Langkah 6: Buat View

Pada langkah ini, Anda perlu mengunjungi direktori application/views. Dan buat satu file view dengan nama home.php.

Setelah itu tambahkan kode berikut ke dalamnya:

<!DOCTYPE html>
<html>
<head>
<title>Codeigniter 4 Import Excel or CSV File into Database Example</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
</head>
<body>
<form action="<?php echo base_url();?>import/importFile" method="post" enctype="multipart/form-data">
Upload excel file : 
<input type="file" name="uploadFile" value="" /><br><br>
<input type="submit" name="submit" value="Upload" />
</form>
</body>
</html>

Langkah 7: Buat Route

Pada langkah ini, Anda perlu membuat rute yang merender tabel ke dalam tampilan, tempatkan kode berikut di   file app/Config/Routes.php.

$routes->get('/', 'Import::index');

Langkah 8: Start Development Server

Pada langkah ini, buka terminal Anda dan jalankan perintah berikut untuk memulai server development:

php spark serve

Lalu, Buka browser dan tekan di bawah URL:

http://localhost:8080

Kesimpulan

Impor data file excel atau csv ke dalam database di CodeIgniter 4. Dalam tutorial ini, Anda telah mempelajari cara mengimpor data file csv atau excel ke database mysql di aplikasi codeigniter 4.

upload file csv codeigniter import excel / csv ke database codeigniter codeigniter