• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

PHP

Menampilkan Data Dari Database CodeIgniter 4

Last Updated on 26 February 2020 By tommy Leave a Comment

Tutorial kali ini kita akan membahas cara mudah menampilkan data dari database MySQL ke dalam tabel dengan Bootstrap 4. Ada 5 tahap ditutorial ini.

Konfigurasi Database

Buka file .env, ubah bagian database menjadi

database.default.hostname = localhost
database.default.database = tutorial
database.default.username = root
database.default.password = VHMAxc7Wx7b3crUhx4rH
database.default.DBDriver = MySQLi

Import Database

Import database contoh, untuk memudahkan membuat contoh ini

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `first_name` varchar(50) DEFAULT NULL,
  `last_name` varchar(50) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `country` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Dumping data for table `users`
--
INSERT INTO `users` (`id`, `first_name`, `last_name`, `email`, `password`, `country`) VALUES
(1, 'Winston', 'Bebis', '[email protected]', 'RCOWs2uJq7', 'Indonesia'),
(2, 'Ethelyn', 'Henrys', '[email protected]', 'ZwirrolHMukN', 'Russia'),
(3, 'Vittorio', 'Vellender', '[email protected]', 'hz7uqNpZ', 'Brazil'),
(4, 'Gearalt', 'Scinelli', '[email protected]', 'noer33vU', 'Poland'),
(5, 'Fey', 'Stevens', '[email protected]', 'j1afGfuw7Ve7', 'China'),
(6, 'Bentley', 'Ditt', '[email protected]', 'BUR6fv0A', 'Portugal'),
(7, 'Tonya', 'Rye', '[email protected]', 'X5tmZ9jDcS', 'China'),
(8, 'Juline', 'Roughey', '[email protected]', 'kjRRO45jeD0w', 'Indonesia'),
(9, 'Alic', 'Wevell', '[email protected]', 'TzSWEfZWy8vQ', 'China'),
(10, 'Norbie', 'Gelder', '[email protected]', '4jYZi2rj', 'Albania'),
(11, 'Emmalynn', 'Gabler', '[email protected]', 'Uri553LlQO', 'Sweden'),
(12, 'Sibelle', 'Bernardo', '[email protected]', 'Lbiznun', 'Ukraine'),
(13, 'Laurie', 'Spooner', '[email protected]', 'IpkvoEL96BXc', 'China'),
(14, 'Othilie', 'Eckly', '[email protected]', '27kZgqGFJMmL', 'Venezuela'),
(15, 'Artus', 'Pennycook', '[email protected]', 'QOs7uRh5yLKB', 'Mali'),
(16, 'Vincenz', 'Osler', '[email protected]', 'Gu5QCXHQ', 'China'),
(17, 'Isidro', 'Hemphall', '[email protected]', 'NQ4KEqzc', 'France'),
(18, 'Pinchas', 'Le Guin', '[email protected]', 'ZsfzyYqo', 'China'),
(19, 'Rorie', 'Aleksandrev', '[email protected]', 'dstH8RB5', 'South Africa'),
(20, 'Mayer', 'Pitkethly', '[email protected]', 'OHjZtbmX5gt', 'Canada'),
(21, 'Karol', 'Baiden', '[email protected]', 'EZ1iIWBYV1p6', 'Morocco'),
(22, 'Franciska', 'Peeters', '[email protected]', 'QJX2b8DfGs', 'Russia'),
(23, 'Chlo', 'Kennford', '[email protected]', 'NU8YjWQF', 'Portugal'),
(24, 'Wolfie', 'Lownds', '[email protected]', '1D00dQaOaO', 'Greece'),
(25, 'Sherri', 'Hellens', '[email protected]', 'Ee7nls3', 'Poland'),
(26, 'Emory', 'Semark', '[email protected]', 'VAIBfR8uO', 'Tajikistan'),
(27, 'Jakie', 'Hulks', '[email protected]', 'jI5ylhi', 'China'),
(28, 'Leticia', 'Mathie', '[email protected]', 'euFzcmE', 'Indonesia'),
(29, 'Raimondo', 'Milier', '[email protected]symantec.com', '3fNmX69MpoiF', 'Poland'),
(30, 'Fawn', 'Cush', '[email protected]', 'odFVlovDiSj9', 'China');
 
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`);
 
ALTER TABLE `users`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=51;
COMMIT;

Membuat Model

Buat model app/Models/UserModel.php untuk memanggil data dari database

<?php namespace App\Models;
 
use CodeIgniter\Model;
 
class UserModel extends Model
{
    protected $table = 'users';
 
    public function getUsers()
    {
        return $this->findAll();
    }
 
}

Membuat Controller

Buat controller app/Controllers/User.php, controller ini nanti yang digunakan untuk memanggil url, juga untuk mengarahkan kemana view yang ditampilkan.

<?php namespace App\Controllers;
 
use App\Models\UserModel;
 
class User extends BaseController
{
    public function index()
    {
        $users = new UserModel();
        $data = $users->getUsers();
        return view('user', compact('data'));
    }
}

Membuat View

Buat view baru app/Views/user.php, disini data akan kita tampilkan ke enduser.

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="jaranguda.com tutorial codeigniter4">
    <title>Codeigniter 4 - Jaranguda.com</title>
 
    <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <style>
body {
  padding-top: 5rem;
}
 
    </style>
  </head>
  <body>
    <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
 
  <div class="collapse navbar-collapse" id="navbarsExampleDefault">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
        <div class="dropdown-menu" aria-labelledby="dropdown01">
          <a class="dropdown-item" href="#">Action</a>
          <a class="dropdown-item" href="#">Another action</a>
          <a class="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
    </ul>
  </div>
</nav>
 
<main role="main" class="container-fluid">
 
    <h1>Tutorial Codeigniter 4</h1>
    <hr>
 
 
 
 
<table class="table">
  <tt>
    <th>Name</th>
    <th>Email</th>
    <th>Password</th>
  </tr>
 
<?php
foreach ($data as $user) {
  // var_dump($user);
?>
  <tr>
    <td><?php echo $user['first_name'] . ' ' .  $user['last_name']; ?></td>
    <td><?php echo $user['email']; ?></td>
    <td><?php echo $user['password']; ?></td>
  </tr>
<?php
}
?>
</table>
 
</main><!-- /.container -->
</body>
</html>

Jalankan development server CodeIgniter

php spark serve

buka alamat http://localhost:8000 di browser
tampilan di browser codeigniter

Filed Under: PHP

Mengirim SMS dengan API NusaSMS

Last Updated on 23 February 2020 By tommy Leave a Comment

Mengirim SMS dengan API nusasms sangat mudah, karena di dokumentasi APInya sudah tersedia contoh. Selain itu API yang tersedia juga hanya ada beberapa.

Buat folder untuk project ini, contoh nusasms. di folder ini kita akan menginstall guzzle begitu juga meletakkan index.php

Install Guzzle

Install Guzzle dengan composer

require guzzlehttp/guzzle

Script Kirim SMS

Copy script dibawah ini ke index.php. Script dibawah ini akan mengirim OTP

<?php
require 'vendor/autoload.php';
 
$sms = 'Contoh kirim OTP dengan NUSASMS';
$encodedSms = rawurlencode($sms);
$username = 'USERNAME_api';
$password = 'PASSWORD';
$phoneNumber = '08xxxxxxxxxx';
 
// kirim SMS
$client = new \GuzzleHttp\Client();
$url = "http://api.nusasms.com/api/v3/sendsms/plain?user=$username&password=$password&SMSText=$encodedSms&GSM=$phoneNumber&otp=Y";
$response = $client->request('GET', "$url");
$contents = $response->getBody()->getContents();
var_dump($contents);

jalankan script diatas

php index.php

outputnya

<?xml version="1.0" encoding="UTF-8"?>
<results>
<result><status>0</status><messageid>812381327137128183</messageid><destination>6282xxxxxxxxxx</destination></result>
</results>

untuk mengirim SMS biasa, ubah url menjadi

$url = "http://api.nusasms.com/api/v3/sendsms/plain?user=$username&password=$password&SMSText=$encodedSms&GSM=$phoneNumber";

Filed Under: PHP

Mengexport Database MySQL ke Excel dengan PHP

Last Updated on 21 February 2020 By tommy Leave a Comment

Membuat laporan Excel dari MySQL, menjadi mudah dengan PHP. Dulunya bernama PHPExcel sekarang berubah menjadi PhpSpreadsheet. Dari segi perintah banyak yang mirip, jadi migrasi dari PHPExcel ke PhpSpreadsheet tidak terlalu sulit.

Data yang akan kita export adalah Data Penduduk Indonesia, file sql nya bisa diimport dibawah ini

 
CREATE TABLE `datapenduduk` (
  `ID` int(11) NOT NULL,
  `provinsi` varchar(50) NOT NULL,
  `jumlah` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Dumping data for table `datapenduduk`
--
 
INSERT INTO `datapenduduk` (`ID`, `provinsi`, `jumlah`) VALUES
(1, 'BANTEN', 10632166),
(2, 'BENGKULU', 1715518),
(3, 'DI YOGYAKARTA', 3457491),
(4, 'DKI JAKARTA', 1679163),
(5, 'GORONTALO', 1040164),
(6, 'JAMBI', 3092265),
(7, 'JAWA BARAT', 43053732),
(8, 'JAWA TENGAH', 32382657),
(9, 'JAWA TIMUR', 37476757),
(10, 'KALIMANTAN BARAT', 4395983),
(11, 'KALIMANTAN TENGAH', 2212089),
(12, 'KEPULAUAN RIAU', 1679163),
(13, 'LAMPUNG', 7608405),
(14, 'MALUKU', 1533506),
(15, 'MALUKU UTARA', 1038087),
(16, 'NANGGROE ACEH DARUSSALAM', 4494410),
(17, 'NUSA TENGGARA BARAT', 4500212),
(18, 'PAPUA', 2833381),
(19, 'RIAU', 5538367);
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `datapenduduk`
--
ALTER TABLE `datapenduduk`
  ADD PRIMARY KEY (`ID`);
COMMIT;

Buat satu folder baru untuk menyimpan file yang akan kita buat. Contoh beri nama php-mysql-excel

Install PhpSpreadsheet

Pindah ke folder php-mysql-excel, lalu install library PhpSpreadsheet dengan composer

composer require phpoffice/phpspreadsheet

Setelah terinstall, buat file index.php, copy paste script dibawah ini

<?php
// index.php
require 'vendor/autoload.php';
 
// login MySQL
$DB_SERVER = "localhost";
$DB_USER = "USER";
$DB_PASSWORD = "PASSWORD";
$DB_NAME = "tutorial";
$mysqli = new mysqli("$DB_SERVER","$DB_USER","$DB_PASSWORD","$DB_NAME");
 
if ($mysqli->connect_errno) {
  echo "Errno: " . $mysqli->connect_errno . "\n";
  echo "Error: " . $mysqli->connect_error . "\n";
  exit;
}
 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
 
// buat nama sheetnya
$sheet->setTitle('Sheet 1');
// nama kolom dibaris pertama
$sheet->setCellValue('A1', 'Provinsi');
$sheet->setCellValue('B1', 'Jumlah Penduduk');
$sheet->setCellValue('C1', 'Diupdate');
 
// timestamp
$tz = 'Asia/Jakarta';
$dt = new DateTime("now", new DateTimeZone($tz));
$timestamp = $dt->format('Y-m-d G:i:s');
 
$formatTanggal = \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($timestamp);
$data = mysqli_query($mysqli,"select provinsi,jumlah from datapenduduk");
// mulai dari baris kedua
// baris pertama untuk nama kolom
$row = 2;
while($record = mysqli_fetch_array($data))
{
    $sheet->setCellValue('A'.$row, $record['provinsi']);
    $sheet->setCellValue('B'.$row, $record['jumlah']);
    $sheet->setCellValue('C'.$row, $formatTanggal);
    $row++;
}
 
// format tanggal di kolom C 
$spreadsheet->getActiveSheet()->getStyle('C')
    ->getNumberFormat()
    ->setFormatCode(
        \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME
    );
 
$writer = new Xlsx($spreadsheet);
// set header agar file di download
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Transfer-Encoding: Binary");
header('Content-disposition: attachment; filename="Jumlah Penduduk Indonesia.xlsx"');
header('Cache-Control: max-age=0');
$writer->save("php://output");
?>

Script diatas berjalan lancar diatas PHP 7.x. Agar file Excel yang di konversi disimpan didalam folder php-mysql-excel ubah bagian

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Transfer-Encoding: Binary");
header('Content-disposition: attachment; filename="Jumlah Penduduk Indonesia.xlsx"');
header('Cache-Control: max-age=0');
$writer->save("php://output");

menjadi

$writer->download('jumlah penduduk indonesia.xlsx');

Filed Under: PHP

Dynamic Subdomain dengan PHP Apache 2.4

Last Updated on 20 February 2020 By tommy Leave a Comment

Contoh kasus yang sering digunakan adalah tiap member sebuah situs memiliki subdomain sendiri, atapun reseller menggunakan username sebagai subdomain. Magicnya ada di tiga bagian, pertama di DNS, kedua di VHOST, ketiga di script.

DNS WILDCARD

Set DNS Wildcard, bisa untuk domain ataupun subdomain, contohnya

*.web.jaranguda.com    IN    A    192.168.1.1

Di Cloudflare caranya seperti gambar dibawah
setting dns wildcard cloudflare

Setting VHOST APACHE

Webserver yang digunakan tidak terlalu berpengaruh, selama dia bisa menghandle wildcard. Disini saya menggunakan Apache 2.4 di Fedora 31. File konfigurasinya berada di /etc/httpd/conf.d/vhost.conf isinya

<VirtualHost *:80>
  DocumentRoot /home/tommy/git/php-vhost/
  ServerName web.jaranguda.com
  ServerAlias *.jaranguda.com
 
  <Directory "/home/tommy/git/php-vhost">
    Options -Indexes
    Options FollowSymLinks
    AllowOverride All
    Require all granted
  </Directory>
 
</VirtualHost>

cara ini tidak hanya untuk subdomain, tetapi bisa juga untuk domain. Sebagai contoh anda domainer, ingin menampilkan nama domain, dan harga yang ditentukan di setiap domain, cukup dengan satu script ratusan bahkan ribuan domain langsung bisa dihandle.

Script PHP

Logika untuk scriptnya, kita membuat beberapa domain yang diijinkan, bisa dari database atau dibuat dalam array. Bila user mengunjungi subdomain yang tidak diijikan akan ditampilkan pesan error. Script inilah yang bertugas menampilkan situs sesuai dengan peruntukannya. Saya namai script ini index.php (/home/tommy/git/php-vhost/index.php) begini scriptnya

<?php
// subdomain yang diijinkan
$allowedSubdomain = ['email', 'ftp', 'payment'];
$subdomain = explode('.web.jaranguda.com', $_SERVER['HTTP_HOST']);
 
if(in_array($subdomain[0], $allowedSubdomain)) {
    echo "<b>$subdomain[0]</b> allowed!";
} else {
    echo "<b>$subdomain[0]</b> rejected! not in whitelist domain!";
}
 
var_dump($_SERVER['HTTP_HOST']);

Coba buka namaasal.web.jaranguda.com, akan muncul tampilan
subdomain not whitelisted
sekarang buka email.web.jaranguda.com
subdomain allowed

Filed Under: PHP

Halaman Upload untuk Mengimpor Excel ke MySQL Dengan PhpSpreadsheet

Last Updated on 19 February 2020 By tommy Leave a Comment

Versi sebelumnya di Mengimpor Excel ke MySQL Dengan PhpSpreadsheet kita hanya mengambil file dari folder langsung, kali ini kita akan membuat halaman web dimana user bisa mengupload file Excel.
Buat folder untuk menyimpan script yang akan kita buat, anggap kita buat folder php-excel. Didalam folder php-excel jalankan composer berikut ini untuk menginstall PhpSpreadsheet

composer require phpoffice/phpspreadsheet

Buat file index.html, lalu copy paste script dibawah ini

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Script Import File Excel</title>
</head>
<body>
    <div class="container">
        <h1>Script Import File Excel</h1>
        <form method="post" enctype="multipart/form-data" action="excel.php">
            Pilih File Excel: <br>
            <input name="fileexcel" type="file"><br><br>
            <input name="upload" type="submit" value="Import">
        </form>
    </div>
 
</body>
</html>

File excel yang akan diimport
file excel import php
agar terlihat berbeda kita gunakan data yang berbeda. Buat table baru di MySQL/MariaDB dengan data berikut

CREATE TABLE `contact` (
  `id` int(11) NOT NULL,
  `company` varchar(100) NOT NULL,
  `company_pic` varchar(40) NOT NULL,
  `phone_number` varchar(20) NOT NULL,
  `address` text NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
ALTER TABLE `contact`
  ADD PRIMARY KEY (`id`);
ALTER TABLE `contact`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
COMMIT;

Untuk mengolah file yang di upload kita gunakan PhpSpreadsheet

<?php
 
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
// validasi
if(empty($_FILES['fileexcel']['tmp_name'])) {
    exit("Tidak ada file diupload");
}
 
$file = pathinfo($_FILES['fileexcel']['name']);
 
// ekstensi yang diijinkan
$allowedExtension = ['xlsx', 'xls'];
if(! in_array($file['extension'],$allowedExtension)) {
    exit("Galat! file extension yang diijinkan .xlsx .xls");
 
}
 
$DB_SERVER = "localhost";
$DB_USER = "USER";
$DB_PASSWORD = "PASSWORD";
$DB_NAME = "tutorial";
$mysqli = new mysqli("$DB_SERVER","$DB_USER","$DB_PASSWORD","$DB_NAME");
 
if ($mysqli->connect_errno) {
  echo "Errno: " . $mysqli->connect_errno . "\n";
  echo "Error: " . $mysqli->connect_error . "\n";
  exit;
}
 
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$reader->setReadDataOnly(true);
// lokasi file excel dari file yang di upload
$spreadsheet = $reader->load($_FILES['fileexcel']['tmp_name']);
 
$worksheet = $spreadsheet->getActiveSheet();
$rows = $worksheet->toArray();
 
// hapus baris pertama
unset($rows[0]);
 
$tz = 'Asia/Jakarta';
$dt = new DateTime("now", new DateTimeZone($tz));
$timestamp = $dt->format('Y-m-d G:i:s');
 
$hitungSukses = 0;
$hitungGagal = 0;
 
foreach ($rows as $key => $value) {
    $query = "INSERT INTO contact VALUES (null, '$value[0]', '$value[1]', '$value[2]', '$value[3]', '$timestamp')";
    echo "$query" . "<br>";
    $result = $mysqli->query($query);
    if($result) {
        $hitungSukses++;
    } else {
        $hitungGagal++;
        var_dump(mysqli_error($mysqli));
    }
}
 
echo "<hr>";
echo "Sukses: " . $hitungSukses . "<br>";
echo "Gagal: " . $hitungGagal;

ubah credential diatas menjadi username/password yang digunakan database anda.

Jalankan server development php dari folder php-excel dengan

php -S localhost:9000

Di browser buka http://localhost:9000
interface upload excel php
pilih file Excel yang akan diupload, klik Import
log export excel ke mysql

Script tutorial bisa didownload dibawah ini. Struktur foldernya

php-excel
├── composer.json
├── composer.lock
├── contact.sql
├── contact.xlsx
├── excel.php
├── index.html
└── vendor

Download “php-excel-1.zip”

php-excel-1.zip – Downloaded 536 times – 4.19 MB

Filed Under: PHP

Mengimpor Excel ke MySQL Dengan PhpSpreadsheet

Last Updated on 18 February 2020 By tommy Leave a Comment

Dengan bantuan PhpSpreadsheet sangat mudah untuk mengimpor file Excel, lalu menyimpannya kedalam database MySQL. Contoh sederhana kita punya file excel sebagai berikut
contoh file excel

Buat tabel baru di database, beri nama excel. Untuk menyimpan data yang diimport dari Excel

CREATE TABLE `excel` (
  `id` INT(11) NOT NULL,
  `item` VARCHAR(100) NOT NULL,
  `jumlah` INT(11) NOT NULL,
  `satuan` VARCHAR(30) NOT NULL,
  `harga_satuan` INT(11) NOT NULL,
  `total` INT(11) NOT NULL,
  `tanggal` DATE NOT NULL,
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
ALTER TABLE `excel`
  ADD PRIMARY KEY (`id`);
 
ALTER TABLE `excel`
  MODIFY `id` INT(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
COMMIT;

Buat satu folder tempat project ini, mari kita beri nama PHP-EXCEL.

Install PhpSpreadsheet dengan composer.

composer require phpoffice/phpspreadsheet

buat file index.php, isi dengan

<?php
 
require 'vendor/autoload.php';
 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
$DB_SERVER = "localhost";
$DB_USER = "USER";
$DB_PASSWORD = "PASSWORD";
$DB_NAME = "tutorial";
$mysqli = new mysqli("$DB_SERVER","$DB_USER","$DB_PASSWORD","$DB_NAME");
 
if ($mysqli->connect_errno) {
  echo "Errno: " . $mysqli->connect_errno . "\n";
  echo "Error: " . $mysqli->connect_error . "\n";
  exit;
}
 
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$reader->setReadDataOnly(true);
// lokasi file excel
$spreadsheet = $reader->load("/home/tommy/Documents/belanja.xlsx");
 
$worksheet = $spreadsheet->getActiveSheet();
$rows = $worksheet->toArray();
 
// hapus baris pertama
unset($rows[0]);
 
$tz = 'Asia/Jakarta';
$dt = new DateTime("now", new DateTimeZone($tz));
$timestamp = $dt->format('Y-m-d G:i:s');
 
$hitungSukses = 0;
$hitungGagal = 0;
 
foreach ($rows as $key => $value) {
    // format tanggal
    $date = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value[5])->format('Y-m-d');
    $query = "INSERT INTO excel VALUES (null, '$value[0]', '$value[1]', '$value[2]', '$value[3]', '$value[4]', '$date', '$timestamp')";
    $result = $mysqli->query($query);
    if($result) {
        $hitungSukses++;
    } else {
        $hitungGagal++;
    }
}
 
echo "Sukses: " . $hitungSukses . "<br>";
echo "Gagal: " . $hitungGagal;

untuk bagian yang penting sudah diberi komentar singkat. Sekarang jalankan development server untuk test script diatas.

cd PHP-EXCEL
php -S localhost:9090

buka browser anda alamat diatas http://localhost:9090
sukses import file excel dengan php

Cek database anda, sudah terisi
file excel ada di database

Filed Under: PHP

  • « Go to Previous Page
  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Go to page 4
  • Go to page 5
  • Go to page 6
  • Interim pages omitted …
  • Go to page 38
  • Go to Next Page »

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Cara Mengganti Port Screen Sharing macOS
  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey

Komentar

  • mazda on Tutorial Lengkap Install Mail Server Postfix Dovecot MariaDB di CentOS 7
  • adi on Menggunakan Mikrotik Sebagai SSH Client
  • aris u on Solusi Simple Queue Mikrotik Tidak Berjalan
  • Bowo on Cara Mematikan SSID Molecool Balifiber
  • aris on Solusi Simple Queue Mikrotik Tidak Berjalan

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.2m views
  • Password Terbaru ZTE F609 Indihome 784.5k views
  • Password Superadmin Huawei HG8245A 318.7k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 273.1k views
  • Cara Setting Wireless ZTE F609 Indihome 257.2k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.9k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.8k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 153.4k views
  • Cara Reset Password ZTE F609 Indihome 147.6k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 113.6k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
carakami.com
kuotabisa.com
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java