2077 Posts in 484 Topics- by 821 Members - Latest Member: liricklagu

Pages: [1]   Go Down
  Print  
Author Topic: Upload file CSV dan load ke Database  (Read 3735 times)
webmaster
Administrator
phpBB Guru
*****
Offline Offline

Posts: 924


hairulazami
View Profile WWW
« on: December 15, 2007, 05:34:38 PM »

hehe, kalo mao nyoba2 ni ke na menarik juga, lu bisa upload data baris dalam file CSV ke dalam table database cuman dalam sekali klik...

Upload file CSV dan load ke Database

#1 BIKIN DATABASE ma table na


lu bisa bikin file PHP na, create-db.php

code na ke gini:

Code:
<?

$con=mysql_connect("localhost", "root", "");

//bikin database
if (mysql_query("CREATE DATABASE ujicoba", $con))
{
  echo "<P>Database terbentuk</P>";
}
else
{
  echo "<P>Error membuat DATABASE: <font color=red>" . mysql_error() ." </font></P>";
}

$db=mysql_select_db("ujicoba", $con);

//bikin table
if(mysql_query("CREATE TABLE `nama_temen` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`nama` VARCHAR( 255 ) NOT NULL ,
`profesi` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ;", $con))
{
echo "<P>Table terbentuk</P>";
}
else
{
echo "<P>Error membuat TABLE: <font color=red>". mysql_error() ." </font></p>";
}

mysql_close();

?>

#2 Naaaa, sekarang kita bikin dolo file CONFIG na

bwat file config.php

isi code na ke gini:

Code:
<?

##=====================================##
##      Definisi & Konfigurasi         ##
##=====================================##

//definisi userconnection untuk koneksi utama
define ("_serverDB", "localhost"); //host server
define ("_userDB", "root"); //user dbase
define ("_passDB", ""); //password dbase
define ("_DBname", "ujicoba"); //dbase utama

define ("_TBLname", "nama_temen"); //table

//definisi root site dan direktori utama website
define ("rootPage", "".$_SERVER["DOCUMENT_ROOT"].""); //root site ( www / htdocs )
define ("folderSite", "/upload-csv/"); //direktori utama website, lokasi file ini berada (upload-csv.php)

define ("_DIR", "lib/csv"); //direktori upload file, berada di dalam definisi folderSite

# individual file size limit - dalam bytes (102400 bytes = 100KB)
$max_file_size = 1024000;   //maximal zise file





##=====================================##
##          Fungsi - konek             ##
##=====================================##

function do_connect()
{
    global $db_con;
    @$db_con = @mysql_connect(_serverDB, _userDB, _passDB) or die("Miss Connection $php_errormsg");
    if ($db_con) @mysql_select_db(_DBname) or die ("Warning: Gagal Nyelek Database,
Cek donk nama Database na");
    return $db_con;
}

?>

fungsi define diatas untuk mendefinisikan sebuah nilai yang akan di load value na lewat file yang dikehendaki

#3 Baru dah lu bikin file FORM lengkap dengan aksina, upload-csv.php

kode na ke gini:
Code:
<?

##============================================##
##  ##
##  upload file CSV dan load ke Database      ##
##  php builder : hairul azami [ dr.emi ]     ##
##
##  file code ini adalah bersifat opensource  ##
##  lu bebas ngedit na, tutorialna pun bebas  ##
##  lu boleh tampilin di web lu, asalkan kudu ##
##  nyantumin link author na: www.dremi.info  ##
##  ##
##============================================##



## panggil file config.php
include ("config.php");

##=====================================##
##      Eksekusi dimulai di sini       ##
##         Selamat mencoba             ##
##=====================================##

if($_POST['mulaiSubmit'])
{
    ##posting data
$fileSize = $HTTP_POST_FILES['uFile']['size'][0]; //file size yg diupload
    $fileName = $HTTP_POST_FILES['uFile']['name'][0];  //nama file
$tmpFile = $HTTP_POST_FILES['uFile']['tmp_name'][0]; //nama temporary file
    $fileExt = strtolower(substr($fileName, -3));  //ekstensi file,
//misalkan nama_temen.csv (exktensinya csv)

    ##seleksi kesalahan inputan file    
if(empty($fileName))  // kalo form file upload kosong
    {
        echo "<SCRIPT>alert(\"Form upload file CSV kosong\");history.go(-1);</SCRIPT>";
        return false;
    }
    else
{

// kalo file size > $max_file_size
if($fileSize > $max_file_size)
     {
         echo "<SCRIPT>alert(\"Ukuran file lebih besar dari ".$max_file_size." BYTES (".round(($max_file_size/1024),2)." KB)\");history.go(-1);</SCRIPT>";
         return false;
     }
     elseif($fileExt != "csv")  // kalo tidak ber ekstensi CSV
     {
         echo "<SCRIPT>alert(\"Tipe / ekstensi file salah, harus ber ekstensi CSV\");history.go(-1);</SCRIPT>";
         return false;
     }
     else
     {
    
    ## kopi dolo ke $direktori
         if(@copy($tmpFile, _DIR."/$fileName"))
         {
             do_connect(); // konek dolo
         $query= "LOAD DATA INFILE
'".rootPage."".folderSite.""._DIR."/$fileName' replace
INTO TABLE "._TBLname." FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'" or die("Data gagal di load");
     $result = mysql_query($query);

             echo "<SCRIPT>alert(\"ngUpload Sukses !\");history.go(-1);</SCRIPT>";
         }
         else
         {
             echo "<SCRIPT>alert(\"ngUpload Gagal !\");history.go(-1);</SCRIPT>";
         }
     }

}
    
}
else
{
    echo "<html><head><script type=\"text/javascript\" src=\"ajax/baca.js\"></script>
<title>Ayo ngupload</title></head><body><style>body,input { font-family: arial; font-size: 12px; }</style>";
echo "<H5>Upload CSV na dan load ke Database !</H5>";
    echo "<form action=\"\" enctype=\"multipart/form-data\" method=\"post\">
    File Browse:<BR>";
    echo "<input type=\"file\" name=\"uFile[]\" size=\"30\">";
    echo "<BR><BR>
    <input style=\"padding:10px; font-size: 18px;\" type=\"submit\" name=\"mulaiSubmit\" value=\"Upload !\">
    <input style=\"padding:10px; font-size: 18px;\" type=\"reset\" name=\"reset\" value=\"Reset !\">
    </form>
<p><a href=\"#readData\" title=\"Ajax Responsibility\" onClick=\"readData()\">Read Data Table</a> OR
<a href=\"$PHP_SELF\" title=\"ReLoad Page\">ReLoad</a></p>
<div id=\"queryData\"></div>
</body></html>";
}

?>

sample form diatas, gue terapin fungsi Ajax, cuma skedar variasi dowank, kalo lu ga mau ganti aja form na ke gini:

Code:
echo "<html><head>
<title>Ayo ngupload</title></head><body><style>body,input { font-family: arial; font-size: 12px; }</style>";
echo "<H5>Upload CSV na dan load ke Database !</H5>";
    echo "<form action=\"\" enctype=\"multipart/form-data\" method=\"post\">
    File Browse:<BR>";
    echo "<input type=\"file\" name=\"uFile[]\" size=\"30\">";
    echo "<BR><BR>
    <input style=\"padding:10px; font-size: 18px;\" type=\"submit\" name=\"mulaiSubmit\" value=\"Upload !\">
    <input style=\"padding:10px; font-size: 18px;\" type=\"reset\" name=\"reset\" value=\"Reset !\">
    </form></body></html>";

WOKE sekarang coba test pake http://localhost/upload-csv/upload-csv.php, tapi sebelumna, bikin dolo sample data CSV di Microsoft Excel:

abis ntu lu save dengan nama file sesuka lu, misal na: nama_temen.csv

Cara ngesave na di Ms Excel, pili menu File > Save As > Type na : Comma Delimited






Selamat mencoba dah..hahahahaha Cheesy  Cheesy  Cheesy
« Last Edit: June 22, 2009, 06:18:23 PM by webmaster » Logged


huhui
phpBB Guru
*
Offline Offline

Posts: 102


View Profile WWW
« Reply #1 on: December 17, 2007, 10:01:02 AM »

saya dah nyoba tapi ko ngak nginsert ke database yah, kaloke folder lib ada






 :o
« Last Edit: January 01, 1970, 07:00:00 AM by huhui » Logged

webmaster
Administrator
phpBB Guru
*****
Offline Offline

Posts: 924


hairulazami
View Profile WWW
« Reply #2 on: December 18, 2007, 12:37:13 PM »

Quote from: "huhui"
saya dah nyoba tapi ko ngak nginsert ke database yah, kaloke folder lib ada






 :?

pertama cobain dolo di lokal host, nah kalo di onlen biasana, Server Hosting punya baris khusus pengganti perintah SQL " LOAD DATA INFILE ", karena alasan keamanan misalkan saja dengan mengganti nya menjadi :

Code:
LOAD DATA LOCAL INFILE


hehe  :D
« Last Edit: January 01, 1970, 07:00:00 AM by webmaster » Logged


faris18787
phpBB Guru
*
Offline Offline

Posts: 59


ask me ask me
View Profile WWW
« Reply #3 on: May 25, 2008, 07:40:57 AM »

wihi keren nich haha akirnya gw coba.. cihuyy om dremi  :lol:

makasii
« Last Edit: January 01, 1970, 07:00:00 AM by faris18787 » Logged

piis V^_^

webmaster
Administrator
phpBB Guru
*****
Offline Offline

Posts: 924


hairulazami
View Profile WWW
« Reply #4 on: May 25, 2008, 08:13:17 AM »

wuki wuki broder....  Cheesy
« Last Edit: January 01, 1970, 07:00:00 AM by webmaster » Logged


irones
phpBB Guru
*
Offline Offline

Posts: 6


View Profile Email
« Reply #5 on: September 08, 2009, 12:30:08 PM »

Saya dah coba di lokal dengan msg sukses. Tapi kok gak masuk ke database datanya, cuma id-nya doank. di folder lib sih masuk. Help me pls!  em4600
Logged
irones
phpBB Guru
*
Offline Offline

Posts: 6


View Profile Email
« Reply #6 on: September 08, 2009, 02:15:51 PM »

Sudah sukses euy ! Smiley Hatur Nuhun. Tapi kok gak bisa file .csv dari office 2007 ? Kalo dari office 97 bisa.
Ada lagi pertanyaan: Gimana scriptnya kalo filenya .xls. Kan agak ribet  nyuruh user untuk save as dulu file xls kefile csv.
Thx b4!
Logged
webmaster
Administrator
phpBB Guru
*****
Offline Offline

Posts: 924


hairulazami
View Profile WWW
« Reply #7 on: September 09, 2009, 05:09:14 AM »

wah trimakasih. insyaalloh sy bkin bwat upload xls ke dbase. em0100 em0100
Logged


irones
phpBB Guru
*
Offline Offline

Posts: 6


View Profile Email
« Reply #8 on: September 09, 2009, 08:39:25 AM »

wah trimakasih. insyaalloh sy bkin bwat upload xls ke dbase. em0100 em0100

Ditunggu nih.
Hatur nuhun sateuacanna  em3700 Forum ini bener2 bantu saya. Buat webmasternya mudah-2an jadi amal kebaikan. Amin.
Sbg info untuk file csv ini sebenarnya PHP punya fungsi sendiri yaitu fgetcsv. Nih tutorialnya http://nl3.php.net/manual/en/function.fgetcsv.php
Oh iya, Untuk yg file csv pake office 2007 gak bisa upload, ternyata delimeternya bukan , (koma) tapi ;(titik koma).
Logged
Pages: [1]   Go Up
  Print  
 
Jump to: