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() && ! $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 & check number of fields
if($i > 0 && $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