Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb
Kalau email konfirmasi tidak masuk-masuk, tolong cek folder Spam di email Anda.
[SOLVED] Error - Import data ke MySql dari File Excel (PHP Excel Reader)
  • Newbie nih, mohon bantuannya.

    Masalah:
    • Waktu import data ke mysql pake script nya PHP Excel Reader, hasil import datanya aneh. Kemungkinan kesalahan di looping, tapi belum nemu 8-|
    • Record yang keimport dari file excelnya cuma record 1-9, kemudian record 10 -12 dilompatin, lanjut lagi record 13-21, tiba-tiba lompat record 26


    Berikut scriptnya


    //Script Ambil Data nya

    <?php
         include_once("../class/class_getdata.php");
         $koneksi = new getData();
         $koneksi->koneksi();
         $sql = "SELECT kd_kelas,nama_kelas FROM kelas";
         $koneksi->query($sql);
         $hasilArray = $koneksi->ambilArray();
         $option = "";
         foreach($hasilArray as $index=>$data)
           {
           $kd_kelas = $data['kd_kelas'];
           $nama_kelas = $data['nama_kelas'];
           $option .=  "<option value=\"$kd_kelas\">".$nama_kelas."</option>";
           }

    ?>


    //Form HTML nya

    <form name="upload_nilai" method="post" enctype="multipart/form-data" action="upload_excel_send.php">
                        <div id="title-form-nilai">Pilih Kelas </div>
                        <select name="kd_kelas" class="input-nilai"><option value="">...</option><?php echo $option; ?></select>
                        <div id="title-form-nilai">Pilih File Excel: </div>
                        <input name="file_nilai" class="input-nilai" type="file" />
                        <div id="title-form-nilai"><input type="submit" name="upload_file_nilai" class="input-nilai" value="Upload" /></div>
    </form>


    //Script Action dari Form nya

    <?php

    ...

       //Script Import Data Excel nya


        include("../class/excel_reader.php");
        $data = new Spreadsheet_Excel_Reader($_FILES['file_nilai']['tmp_name']);
        $baris = $data->rowcount($sheet_index=0);
       
        $kd_mp = $_SESSION["kd_mp"];
        $kd_kelas = $_POST["kd_kelas"];
        for ($i=1; $i<=$baris; $i++)
        {
            $nis = $data->val($i,1); //ambil data kolom ke-1 file .xls
            $nilai = $data->val($i,3); //ambil data kolom ke-3 file .xls
           
            include_once("../class/class_getdata.php");
            $koneksi = new getData();
            $koneksi->koneksi();
            $sql = "INSERT INTO nilai VALUES('','$nis','$kd_mp','$nilai','$id_thn_ajaran','$kd_kelas')";
            $koneksi->query($sql);
    ?>


  • .  .
    Posts: 4,437
    kayanya yg bermasalah php excel reader nya ...
  • ablehableh
    Posts: 340
    coba di echo dolo :D jadi kelihatan yang kebaca apa.

    nanti kan terlihat yang bermasalah dimana
  • saefullohsaefulloh
    Posts: 936
    setuju.. saya punya script exel reader dan jadi we... naruh file exelnya mungkin..
  • Saya tes echo query sql insert nya, hasilnya begini:
    image


    Tapi yang masuk ke SQL server nya:

    image
  • .  .
    Posts: 4,437
    jah ... yg jadi masalah kan lompat yg dibaca ... bukan hasil ...
  • Iya, nah itu dia yang buat bingung :-S

    for ($i=1; $i<=$baris; $i++)
    {
       $nis = $data->val($i,1);
       $nilai = ceil($data->val($i,2));
       echo $i." ";
       echo $sql = "INSERT INTO nilai VALUES('','$nis','$kd_mp','$nilai','$id_thn_ajaran','$kd_kelas')";
       echo "<br />";
       $koneksi->query($sql);
    }

    Yang dibaca dari excel udah diecho, hasilnya keluar berurut 1-28 record, dan benar. Tapi waktu query dieksekusi ke MySql, hasil query yang masuk lompat-lompat dan beberapa sepertinya tidak tereksekusi.

    Kira-kira mana lagi yang harus diecho ya biar kelihatan error nya (:|
  • .  .
    Posts: 4,437
    ndak paham yak ?

    insert elo ndak ada masalah
    loop juga kagak ada masalah

    yg gw curiga :
    - ada format tertentu di xls yg ndak dikenali ama reader
    - otomatis row itu diabaikan

    gimana mau bisa di insert kalo baca aja tidak bisa ?

    coba dolo deh di cek row per row, field per field di xls nya
    ada beda apa di baris yg hilang
  • .  .
    Posts: 4,437
    .
  • Hehehe, maklum kakak.

    Udah dicek, semuanya sama. Kalo gak dikenali sama si reader, bukannya baris ini gak kebaca sempurna ya?

    $nis = $data->val($i,1);
    $nilai = ceil($data->val($i,2));


    Tapi di situ, waktu diecho, semuanya masuk kok, kebukti kl semua isi fieldnya ada 28 record tampil :(

    Setelah diread, baru eksekusi baris ini kan? > $sql = "INSERT INTO nilai VALUES('','$nis','$kd_mp','$nilai','$id_thn_ajaran','$kd_kelas')"

    :D
  • saefullohsaefulloh
    Posts: 936
    nah itu kan yang ditampilkan... querynya.. belum tentu query itu bekerja mungkin...

    aku ga tau.. cuma coba cek data di exel yang tdak bisa masuk ke database.. mbok ada carakter aneh/unix atau apalah... 

  • saefullohsaefulloh
    Posts: 936
    <?php
    // menggunakan class phpExcelReader
    include "excel_reader2.php";
    // koneksi ke mysql
    mysql_connect("localhost", "root", "ppppppppp");
    mysql_select_db("nama-database");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
    <html xmlns="http://www.w3.org/1999/xhtml"&gt;
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
     
    <body>
    <form action="customer.php" method="post" enctype="multipart/form-data" id="export">
    Silakan Pilih File Excel:
    <input name="kode" type="hidden" id="kode" value="1" />
    <input name="file" type="file" id="file">
    <input name="upload" type="submit" value="Import">
    </form>
     
     
    <?
    if($_POST['kode']==1){
    // membaca file excel yang diupload
    $data = new Spreadsheet_Excel_Reader($_FILES['file']['tmp_name']);
     
    // membaca jumlah baris dari data excel
    $baris = $data->rowcount($sheet_index=0);
     
    // nilai awal counter untuk jumlah data yang sukses dan yang gagal diimport
    $sukses = 0;
    $gagal = 0;
     
    // import data excel mulai baris ke-2 (karena baris pertama adalah nama kolom)
    for ($i=2; $i<=$baris; $i++)
    {
    $nama=$data->val($i, 1);
    // membaca data nim (kolom ke-1)
    $ttl= $data->val($i, 2);
    // membaca data nama (kolom ke-2)
    $alamat=$data->val($i, 3);
    $instansi=$data->val($i, 4);
    $no_ktp=$data->val($i, 5);
    $no_npwp=$data->val($i, 6);
    $no_tdp=$data->val($i, 7);
    $no_siup=$data->val($i, 8);
    $no_hp=$data->val($i, 9);
    $no_telp=$data->val($i, 10);
    $email=$data->val($i, 11);
    $ket=$data->val($i, 12);
     
     
    // setelah data dibaca, sisipkan ke dalam tabel mhs
    $query = "INSERT INTO customer (nama,ttl,alamat,instansi,no_ktp,no_npwp,no_tdp,no_siup,no_hp,no_telp,email,ket) VALUES ('$nama','$ttl','$alamat','$instansi','$no_ktp','$no_npwp','$no_tdp','$no_siup','$no_hp','$no_telp','$email','$ket')";
    $hasil = mysql_query($query);
     
    // jika proses insert data sukses, maka counter $sukses bertambah
    // jika gagal, maka counter $gagal yang bertambah
    if ($hasil) $sukses++;
    else $gagal++;
    }
     
    // tampilan status sukses dan gagal
    echo "<h3>Proses import data selesai.</h3>";
    echo "<p>Jumlah data yang sukses diimport : ".$sukses."<br>";
    echo "Jumlah data yang gagal diimport : ".$gagal."</p>";
    }
    ?>
    </body>
    </html>


    coba nih.. aku ada.. kalo file exel readernya sepertinya sama lho..
  • Solved. Trims mas2 bro yang udah bantuin :D

    Ternyata keteledoran saya waktu testing input data manual ke tabel lain yang berelasi dengan tabel ini, copas mentah2 dari excel, ada karakter yang tersembunyi > \r\n

    Script nya ternyata gak bermasalah :D

    Cuma karena ini tabel berelasi, jadi gagal tiap ada id yang ketambahan karakter ini > \r\n
  • un1xc0un1xc0
    Posts: 7
    solved :D
  • saefullohsaefulloh
    Posts: 936
    baguslah.. :-)


Selamat datang,

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion

Tagged

Top Posters