Happy New Year 2011

January 6, 2011 Leave a comment

Happy New Year 2011

Happy New Year 2011

meskipun sedikit sudah lewat, bukankan lebih baik terlambat dari pada tidak sama sekali? Happy New Year 2011 Semoga Segala Keberuntungan dan Keberhasilan Senantiasa Bersama Kita di Tahun 2011 ini. Amin 🙂

Categories: My Self, Uncategorized Tags:

Alter, Repair Semua Table di Database

December 30, 2010 Leave a comment

Berawal dari mulai digunakannya perintah start transaction di script program yang saya buat (dulu belum tahu betapa pentingnya penggunaan start transaction untuk aplikasi multiuser :d) , saya diharuskan merubah engine table yang tadinya menggunakan engine MyISAM menjadi engine InnoDB.

Seperti diketahui perintah start transaction hanya bisa digunakan untuk tipe engine InnoDB.  Daripada saya merubah satu persatu table yang ada didatabase saya, maka saya membuat satu perintah untuk meng-alter sekaligus me-repair semua table yang ada di database saya menjadi InnoDB Engine. Berikut ini perintah yang saya gunakan.

<?php
$query = mysql_query(“SHOW TABLES”);
while($row = mysql_fetch_row($query)){

$sql=’REPAIR TABLE `’.$row[0].’` ‘;
echo $sql.’ done…’;
mysql_query($sql) or die (mysql_error());

$sql=’ALTER TABLE `’.$row[0].’` ENGINE = InnoDB’;
echo $sql.’ done…’;
mysql_query($sql) or die (mysql_error());

} ?>

Kita bisa menjalankan query SHOW TABLES untuk menampilkan seluruh table yang ada di database kita dan menaruhnya dalam sebuah looping query. Di dalam query tersebut bisa kita jalankan perintah untuk me-repair atau meng-alter table tersebut menjadi InnoDB Engine. Mudah bukan?

Semoga Bermanfaat

Categories: My Self, PHP, Tips Tags: , ,

Function Mendapatkan Tanggal Akhir Tiap Bulan

December 30, 2010 1 comment

Tidak terasa dalam beberapa hari lagi, 2010 akan berakhir dan berganti 2011. Tahun 2011 genap sudah 2 tahun blog ini ada, semoga segala isi yang terdapat didalamnya dapat bermanfaat bagi pembaca sekalian. Amin. Di penghujung tahun 2010 ini, ada beberapa artikel yang akan saya tuliskan sebagai kado penutup terindah bagi pembaca blog ini (karna hampir 5 bulan lamanya saya tidak sempat mengupdate blog ini :d).

Pada kesempatan kali ini saya akan memberikan function bagaimana caranya kita mendapatkan tanggal akhir di tiap bulannya. Misal, saya ingin mengetahui bulan desember ini akhir tanggalnya itu jatuh di tanggal berapa 30 atau 31 dst?

nama file : tglAkhir.php

function tglAkhirBulan($thn,$bln){

$bulan[1]=’31’;
$bulan[2]=’28’;
$bulan[3]=’31’;
$bulan[4]=’30’;
$bulan[5]=’31’;
$bulan[6]=’30’;
$bulan[7]=’31’;
$bulan[8]=’31’;
$bulan[9]=’30’;
$bulan[10]=’31’;
$bulan[11]=’30’;
$bulan[12]=’31’;

if ($thn%4==0){
$bulan[2]=29;
}
return $bulan[$bln];
}

penggunaan :
$tglAkhir=tglAkhirBulan($thn,$bln);

contoh :
$tglAkhir=tglAkhirBulan('2010','12');
echo $tglAkhir;

hasil function :
31

Function diatas saya buat ketika saya ingin mencari tanggal akhir dari setiap bulannya. Seperti kita ketahui setiap bulan ada bulan yang tanggalnya sudah pasti yaitu 30 dan 31 kecuali hanya februari yang bisa 28 atau 29  (tahun kabisat). Untuk itu khusus bulan februari ada perhitungan tahun yang yang ingin dicari, apakah sisa bagi tahun tersebut dibagi 4 hasilnya adalah nol? jika nol, maka dapat dipastikan itu adalah tahun kabisat dan akhir tanggal februari pada tahun itu adalah tanggal 29.

Untuk bulan – bulan lainnya kecuali februari kita bisa mendefinisikannya seperti diatas dalam bentuk array. Mudah bukan? dan untuk catatan saat ini saya belum tahu gimana caranya yang benarnya, mungkin ada function di PHP / Mysql untuk mendapatkan akhir tanggal tersebut. Kalo ada yang tahu boleh sharing disini 🙂

Semoga Bermanfaat

Categories: My Self, PHP, Tips Tags: , ,

Solusi Menghindari Error Division By Zero

August 24, 2010 5 comments

Seringkali ketika kita membuat perhitungan untuk mendapatkan nilai dari sebuah prosentasi kita menggunakan rumus (totalnilai/jumlah)*100. Jika totalnilai atau jumlah lebih dari nol mungkin tidak menjadi masalah, namun terkadang jika isi dari variabel totalnilai atau jumlah bernilai nol akan menimbulkan pesan error Warning: Division by zero in dikarenakan pembagiannya bernilai nol. Lalu bagaimana mengatasinya? Kita bisa menggunakan kondisi untuk mengecek apakah nilai nol atau tidak, jika nol maka dipaksakan hasil akhirnya adalah nol.

Contoh :
$rata=($totalnilai!=0)?($totalnilai/$jumlah) * 100:0;

dengan menggunakan perintah if ternary di atas jika nilai $totalnilai berisi nol, maka perintah pembagian ($totalnilai/$jumlah) tidak dijalankan dan nilai variabel $rata=0;

semoga bermanfaat

Categories: Jquery, My Self, Mysql, PHP Tags: ,

Menggambil Username E-Mail dengan Fungsi Explode

July 7, 2010 Leave a comment

Hampir dua bulan lebih saya tidak menulis di blog ini, kangen juga untuk menulis dan membagi apa yang saya tahu kepada yang lain. Kesibukan kerja membuat sedikit waktu yang tersisa untuk sekedar mengupdate blog ini *gaya 🙂

Baiklah ditulisan perdana saya di bulan Juli ini, saya awali dengan menjelaskan bagaimana cara mengambil username dari sebuah email dengan menggunakan fungsi explode di php.

contoh :
$email= admin@info.com;
$username=explode(“@”,$email);
=> admin

$email= admin.info@web.com;
$username=explode(“@”,$email);
=> admin.info

Kasus yang saya alami sehingga saya harus mencari tahu pemenggalan username dari sebuah alamat email adalah ketika saya menambahkan plugins YM Online status di Web Replicate para member yang data emailnya merupakan hasil fetching dari data member.

Dan ternyata saya baru mengetahui bahwa penulisan username untuk YM Online status adalah pengiriman usernamenya saja tanpa ada embel  – embel @yahoo.com dibelakangnya.

penggalan script YM online status yang benar :
<a href=”ymsgr:sendIM?erros_unix”>
dan bukan
<a href=”ymsgr:sendIM?erros_unix@yahoo.com”>

Sehingga ketika saya mem-fetching array dari query tabel member, saya harus memenggal kata usernamenya saja kemudian taro di variabel $email dan kirim sebagai parameter ID YM dari masing – masing member.

Semoga Bermanfaat

Categories: Java Script, PHP, Tips Tags: , ,

Function Transfer File Via FTP Account

May 7, 2010 2 comments

Pada kesempatan kali ini saya akan memberikan contoh function yang bisa kita gunakan untuk mengirimkan file ke server hostingan via ftp account menggunakan php script. Script ini saya dapatkan dari hasil browsing ketika saya mengharuskan mengirimkan txt file yang telah digenerate di komputer lokal kemudian dikirim ke server hosting. Sebetulnya bisa kita menggunakan FTP Client tapi tentunya lebih ribet karena harus membuka lagi program FTP Client. Langsung saja dicoba function berikut ini.

/* Function ftp_uploaddirectory */
function ftp_uploaddirectory($conn_id, $local_dir, $remote_dir){
@ftp_mkdir($conn_id, $remote_dir);
$handle = opendir($local_dir);
while (($file = readdir($handle)) !== false){
if (($file != ‘.’) && ($file != ‘..’)){
if (is_dir($local_dir.$file)){
ftp_uploaddirectory($conn_id, $local_dir.$file.’/’, $remote_dir.$file.’/’);
} else
$f[] = $file;
}
}
closedir($handle);
if (count($f)){
sort($f);
@ftp_chdir($conn_id, $remote_dir);
foreach ($f as $files){
$from = @fopen(“$local_dir$files”, ‘r’);
@ftp_fput($conn_id, $files, $from, FTP_BINARY);}
}
}

/* File Index.php Kita */
$server = “nama server hosting / ftp account”;
$username=”username ftp / nama subdomain”;
$pass=”password ftp /  subdomain”;
$conn_id = @ftp_connect($server);
@ftp_login ($conn_id, $username, $pass);
ftp_uploaddirectory($conn_id, ‘directory sumber lokal’, ‘direktori tujuan hosting’);
@ftp_quit($conn_id);

Note : Perhatikan direktori tujuan di server hosting, pastikan permission chmod ke 775 untuk server linux.

Semoga Bermanfaat

Function Time Out

May 5, 2010 Leave a comment

Function Time Out ini bertujuan untuk meng-logout secara otomatis user yang sedang login namun status dia idle untuk beberapa waktu yang lama tanpa ada aktivitas sama sekali. Tujuannya untuk melindungi data yang ada didalamnya jika ternyata user meninggalkan aplikasinya untuk waktu yang cukup lama tapi lupa meng-logout account dia dari program tersebut. Ini contoh sederhana bisa anda modif lagi sesuai keinginan.

/* timeout.php */
<?php
session_start();
function login_validate() {
$timeout = 1;  /* deklarasi waktu yang kita inginkan (detik) */
$_SESSION[“expires_by”] = time() + $timeout;
}

function login_check() {
$exp_time = $_SESSION[“expires_by”];
if (time() < $exp_time) {
login_validate();
return true;
} else {
unset($_SESSION[“expires_by”]);
return false;
}
}
?>

/* cek.php */
<?php
include ‘timeout.php’;
login_validate();
header(‘Location:main.php’);
?>

/* main.php*/
<?php
include ‘timeout.php’;
if (!login_check()){
echo ‘Sesi sudah habis !! <a href=index.php>Kembali</a’;
exit(0);
}else{
echo ‘Sesi Ok Dalam Hitungan 1 Detik Session akan Hilang.
<br> Silahkan Refresh Halaman ini’;
}
?>

/* index.php */
<title>Session Login</title>
<form name=’cekSesi’ method=’GET’ action=’cek.php’>
<input type=’submit’ value=’Login’>
</form>

Alur Program :
Pertama file index.php berisikan sebuah tombol submit sederhana yang akan dikirimkan ke file cek.php. File cek.php berisikan pemberian nilai $_SESSION[“expires_by”] yang kemudian didirect ke file main.php. File main.php melakukan pengecekan sesi, kita memberi nilai time out adalah 1 (satu) detik, sehingga ketika kita merefresh halaman main.php terbaca sessionnya sudah expired dan akan muncul pesan ‘Sesi sudah habis’ / bisa juga kita direct ke halaman index / form login.

DEMO PROGRAM | SOURCE CODE

Semoga Bermanfaat

Categories: PHP, Tips, Tutorial Tags: , ,

Function No Urut Transaksi

May 5, 2010 Leave a comment

Dalam kesempatan kali ini saya akan memberikan contoh Function untuk membuat nomor urut transaksi. Seringkali kita melihat sebuah nomor transaksi  pada sebuah nota / faktur yang terdiri dari informasi tahun, bulan, tanggal dan nomor urut transaksi itu terjadi.

function nopenjualan(){
$format = date(“ymd”);
$sql=mysql_query(“SELECT kodetransaksi FROM salesproduk_h WHERE substr(kodetransaksi,1,2)=’SL’ AND substr(kodetransaksi,3,6) like ‘%”.$format.”%’ ORDER BY kodetransaksi DESC LIMIT 1 “) or die (mysql_error());
$d=mysql_num_rows($sql);

if($d>0){
$r=mysql_fetch_array($sql);
$d=$r[‘kodetransaksi’];
$str=substr($d,8,6);
$No_Urut = (int)$str;
}else{
$No_Urut = 0;
}

$No_Urut = $No_Urut + 1;
$Nol=””;
$nilai=5-strlen($No_Urut);
for ($i=1;$i<=$nilai;$i++){
$Nol= $Nol.”0″;
}

$Kd_Trans =”SL”.$format.$Nol.$No_Urut;
return $Kd_Trans;
}

Penggunaannya :
$kodeTransaksi=nopenjualan();
echo $kodeTransaksi;

Tercetak :
SL100505000762
SL : Sales
10 : 2010
05 : Mei
05 : Tanggal
000762 : Urutan Transaksi

Semoga Bermanfaat

Categories: Mysql, PHP, Tips, Tutorial Tags: , , ,

Read XML File

May 5, 2010 Leave a comment

Suatu ketika saya diharuskan membaca data dari XML File yang digenerate hanya ketika saya melakukan request ke server dimana file XML itu dibuat. Untuk lebih jelasnya saya akan jelaskan dalam tutorial.

/ * Ambil File XML dan Simpan Dalam Suatu File */
$url = “http://192.168.0.102/&#8221;;
$str = file_get_contents($url);
$fh = fopen(‘content.xml’, ‘w’) or die(“can’t open file”);
fwrite($fh, $str);
$data = simplexml_load_file(“content.xml”);
$jum= count($data)/3;

/* Display Isi XML */
for ($i=0;$i<$jum;$i++){
echo $data->KodeMember[$i];
}

Semoga Bermanfaat

Extract ZIP File Insert MYSQL From DBF File

May 5, 2010 Leave a comment

Pada pembahasan sebelumnya mengenai Eksport DBF ke MYSQL dengan Menggunakan PHP sudah dijelaskan secara teknis untuk mengimport data dari DBF file. Pada tutorial kali ini pun tidak jauh berbeda seperti sebelumnya, perbedaannya adalah kita akan mulai dari mengekstrak file zip, kemudian kita mengambil file DBF tersebut hingga menghapus file DBF yang telah kita import ke MYSQL database kita.

/* Langkah Awal Kita Cek Apakah ada File ZIP di Folder Awal */
$dir = “C:/xampp/htdocs/zip/”;
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (substr($file,-3)==’ZIP’){
$nmFile=$file;  (Jika Ekstension File adalah ZIP)
}
}
closedir($dh);
}
}

/* Langkah Kedua Ekstrak ZIP File ke Folder Tujuan */
$zip = new ZipArchive;
if ($zip->open($nmFile) === TRUE) {
$zip->extractTo(‘C:/xampp/htdocs/zip/ekstrak/’);
$zip->close();

/* Cek Apakah File DBF ada, Jika Ada Insert Ke Array Dahulu */
if (file_exists(“MSBANK.DBF”)) {
$sql=”;
$sql=array();
$insert=dbase_open(“MSBANK.DBF”,0);  /*Buka DBF File */
if ($insert){
echo “The file MSBANK.DBF exists<br>”;
$jum_record=dbase_numrecords($insert);
$nilai=0;
for ($ind=1;$ind<=$jum_record;$ind++){
$data=dbase_get_record($insert,$ind);
$sql[] = ‘(“‘.$data[0].'”,”‘.$data[1].'”,”‘.$data[2].'”,”‘.$data[3].'”,
“‘.$data[4].'”,”‘.$data[5].'”,”‘.$data[6].'”,”‘.$data[7].'”,”‘.$data[8].'”,”‘.$data[9].'”)’;
}
dbase_close($insert);
}
echo ‘Master Bank Rows ‘.$jum_record.'<br>’;
mysql_query(‘TRUNCATE TABLE `tempbank`’) or die (mysql_error());
$h=’INSERT INTO tempbank VALUES ‘.implode(‘,’, $sql) ;
mysql_query($h) or die (mysql_error());

/* Jika Data Sama Cek Perintah Update dengan Data Terbaru */
$sql=”;
$sql=array();
$ql=mysql_query(‘SELECT * FROM tempbank ORDER BY kodebank ASC’) or die (mysql_error());
while($rh=mysql_fetch_row($ql)){
$l=mysql_query(‘SELECT kodebank FROM bank WHERE kodebank=”‘.$rh[0].'”‘) or die (mysql_error());
$jj=mysql_num_rows($l);
if ($jj>0){
$update=’UPDATE bank SET
kodebank=”‘.$rh[0].'”,
namabank=”‘.$rh[1].'”,
digit=”‘.$rh[2].'”,
valid=”‘.$rh[3].'”,
createdate=”‘.$rh[4].'”,
createtime=”‘.$rh[5].'”,
createuser=”‘.$rh[6].'”,
lastupdate=”‘.$rh[7].'”,
lastupdatetime=”‘.$rh[8].'”,
lastupdateby=”‘.$rh[9].'”
WHERE kodebank =”‘.$rh[0].'”‘;
mysql_query($update) or die (mysql_error());
}else{
“‘.$rh[4].'”,”‘.$rh[5].'”,”‘.$rh[6].'”,”‘.$rh[7].'”,”‘.$rh[8].'”,”‘.$rh[9].'”)’;$sql[] = ‘(“‘.$rh[0].'”,”‘.$rh[1].'”,”‘.$rh[2].'”,”‘.$rh[3].'”,
}}

/* Jika Data Berbeda Insert Baru */
$h=’INSERT INTO bank VALUES ‘.implode(‘,’, $sql) ;
$jumArray = count($sql);
if ($jumArray>0){
mysql_query($h) or die (mysql_error());
}
} else {
echo “The file MSBANK.DBF does not exist”;
}
}else{
echo ‘Tidak Ada File ZIP yang diekstrak !’;
}

/* Hapus File DBF dan ZIP */
if (file_exists($nmFile)) {
unlink($nmFile);
}
if (file_exists(‘MSBANK.DBF’)) {
unlink(‘MSBANK.DBF’);
}

Script diatas sudah diujicoba di dapur sendiri 🙂 alias berdasarkan kasus yang saya pernah kerjakan ketika harus mengimport data dari DBF File. Jika ada cara yang lebih baik silahkan sharing disini. Sampai saat ini saya masih mencari tau bagaimana ekstrak ZIP File yang terenkripsi password dimana passwordnya kita ketahui. Mungkin ada yang tahu boleh sharing disini juga. Terima Kasih.

Semoga Bermanfaat