Showing posts with label php. Show all posts
Showing posts with label php. Show all posts

Wednesday, March 30, 2016

Monday, February 15, 2016

Menyalin atau klon data dalam MySQL dengan CodeIgniter

Tajuk dalam BI 'How To Clone a Row in MySQL Using Codeigniter?'.

function DuplicateMySQLRecord ($table, $primary_key_field, $primary_key_val)
{
/* generate the select query */
$this->db->where($primary_key_field, $primary_key_val);
$query = $this->db->get($table);

foreach ($query->result() as $row){
foreach($row as $key=>$val){
if($key != $primary_key_field){
/* $this->db->set can be used instead of passing a data array directly to the insert or update functions */
$this->db->set($key, $val);
}//endif
}//endforeach
}//endforeach

/* insert the new record into table*/
return $this->db->insert($table);
}

 

Sumber: http://developer-paradize.blogspot.my/2015/01/how-to-clone-row-in-mysql-using.html
Share:

Bagaimana membuat salinan data dalam MySQL dengan PHP

Tajuk dia dalam Inggeris 'How to duplicate a record in MySQL using PHP'.

// load the original record into an array
$result = mysql_query("SELECT * FROM {$table} WHERE {$id_field}={$id}");
$original_record = mysql_fetch_assoc($result);

// insert the new record and get the new auto_increment id
mysql_query("INSERT INTO {$table} (`{$id_field}`) VALUES (NULL)");
$newid = mysql_insert_id();

// generate the query to update the new record with the previous values
$query = "UPDATE {$table} SET ";
foreach ($original_record as $key => $value) {
if ($key != $id_field) {
$query .= '`'.$key.'` = "'.str_replace('"','\"',$value).'", ';
}
}
$query = substr($query,0,strlen($query)-2); // lop off the extra trailing comma
$query .= " WHERE {$id_field}={$newid}";
mysql_query($query);

Sumber: http://www.epigroove.com/blog/how-to-duplicate-a-record-in-mysql-using-php
Share:

Wednesday, January 14, 2015

Message: ldap_modify() expects parameter 1 to be resource, boolean given

Entah apalah masalahnya ni?

A PHP Error was encountered


Severity: Warning

Message: ldap_modify() expects parameter 1 to be resource, boolean given

Filename: models/mldap.php

Line Number: 77

----------------------------------------------

Ok, dah jumpa punca error:

$result = ldap_modify($conn, $binddn, $attr);

Nilai $conn ini sepatutnya diambil dari ldap_connect(), tetapi tersilap ambil dari ldap_bind().

Kesilapan kecil, bikin kepala pusing ;)

Share:

Tuesday, January 6, 2015

Monday, January 5, 2015

Tips Aturcara PHP: Cara Ringkas Kenalpasti Jenis Peranti Anda

Kadangkala kita kena bangunkan satu sistem yang ingin kenalpasti jenis peranti yang digunakan oleh pelanggan semasa melayari web atau sistem yang kita bangunkan. Kita nak tahu apakah ianya telefon, tablet atau komputer.

Ok, ini skripnya..

$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))):
$data['mobile'] = TRUE;
else:
$data['mobile'] = FALSE;
endif;

Siapa tak faham sila tanya di ruangan komen :) hehehe..
Share:

Thursday, June 13, 2013

Bagaimana menambah saiz maksimum fail semasa post atau muat naik fail

Saya sebagai developer jarang nak kacau setting pada Server di mana saya tempatkan aplikasi yang dibangunkan. Leceh (Sebenarnya saya tak reti nak godek server dan malas nak ambil tahu hehehe).

Jika saya hadapi masalah yang libatkan setting pada server, saya sebolehnya cari jalan untuk tidak kacau setting tersebut.

Baru-baru ini, user bagi salah satu sistem yang dibangunkan memaklumkan mereka tidak dapat memuat naik beberapa fail. Setelah diselidik, ia disebabkan default setting pada server berkenaan hanya membenarkan fail dengan saiz 2MB sahaja untuk dimuat naik.

Oleh itu, ada 2 cara yang boleh dilakukan bagi membolehkan fail tersebut dimuat naik:

  • Ubahkan nilai item berikut pada fail php.ini (melibatkan server)


post_max_size=20M
upload_max_filesize=20M


  • Tambahkan kod berikut pada fail .htaccess (hanya melibatkan folder aplikasi anda)


php_value post_max_size 20M
php_value upload_max_filesize 20M
Share:

Monday, April 1, 2013

Friday, December 7, 2012

Fungsi str_pad dalam PHP

Entri kali ini saya buat simple sahaja iaitu tentang kegunaan fungsi str_pad. Anda boleh rujuknya di http://php.net/manual/en/function.str-pad.php.

Contoh kegunaan:

Jika anda ingin memaparkan nombor dengan didahului 0 (nombor kosong). Dalam situasi yang saya alami, saya mendapat satu data tarikh di mana tarikh hari dalam bentuk satu digit. Contohnya 3/12/2012, setelah dipecahkan data tersebut, saya ingin gunakan data hari tersebut dalam format '03'.

Apa yang perlu dilakukan ialah:

$day = 3;
$newday = str_pad($day, 2, '0', STR_PAD_LEFT);


Output:

03


Keterangan:

str_pad('input nombor','panjang string','string ','jenis/posisi');
Share:

Sunday, November 11, 2012

Inisiatif: Kuasa dari dalam diri

Saya bermula dengan CodlFusion semasa di universiti, sehingga berkhidmat di syarikat IT swasta. Kemudian diminta pula mendalami ASP. Namun atas inisiatif sendiri, saya juga pelajari PHP kerana nampak akan pasarannya di masa depan pada ketika itu. Alhamdulillah, selepas 10 tahun, apa yang saya pelajari dulu tidak sia-sia. Saya masih dengan PHP.
Share:

Thursday, October 18, 2012

Latihan CodeIgniter

Alhamdulillah, semalam dan kelmarin telah dijalankan latihan kepada rakan-rakan staf di UTHM bagi memberi kefahaman tentang penggunaan framework CodeIgniter dalam pembangunan aplikasi web.

Dalam latihan tersebut, saya menggunakan nota seperti di bawah yang sempat saya sediakan beberapa minggu lepas.

Saya kongsikan nota itu di sisni, semoga nota tersebut juga dapat memberi manfaat kepada anda.

Membina Aplikasi Web Dengan CI
Share:

Sunday, October 14, 2012

CodeIgniter, API Instagram dan Aplikasi Anda

Saya tahu, ramai pengguna di Malaysia menggunakan Instagram untuk mengambil gambar, memuatnaiknya dan dikongsikan ke laman sosial. Tidak kiralah sama ada dengan menggunakan iphone atau gajet android. Maaf, tidak untuk blackberry, symbian, bada os atau windows phone.

Tetapi saya tidak pasti, berapa ramai developer di Malaysia yang menggunakan API Instagram ke dalam aplikasi mereka. Sebagai pihak ketiga, kita boleh menggunakan data-data daripada Instagram untuk kita gunakan dalam aplikasi yang kita bangunkan untuk pelbagai tujuan.

Jika kita lihat di luar Malaysia, banyak aplikasi yang bersumberkan data Instagram telah dibangunkan seperti Webstagram,  Pinstagram, Statigram dan bermacam lagi. Kesemuanya menggunakan API dari Instagram yang telah mereka sediakan.

Saya sendiri, ada membangunkan sebuah aplikasi yang hampir sama yang diberi nama Instagramy. Ia merupakan sebuah aplikasi web yang membenarkan pengguna-pengguna Instagram mencetak foto mereka ke atas sehelai t-shirt. Cuma, bahagian cetak foto ke t-shirt belum lagi saya sempurnakan kerana ketiadaan alat yang sesuai. Ada sesiapa sudi membantu? ;)

Jadi, bagaimana saya melakukannya? CodeIgniter + API Instagram = Instagramy. Ok, bahagian pertama ini saya akan tunjukkan langkah demi langkah untuk kita menggunakan API Instagram dari pendaftaran sehingga ke paparan foto popular dari Instagram. Dan untuk proses selanjutnya seperti proses Sign in with Instagram dan sebagainya, saya akan sambung penulisan ke bahagian kedua nanti, insyaallah sekiranya ada ruang dan kelapangan.

Tutorial ini sesuai untuk anda yang sudah mempunyai asas dalam pengaturcaraan PHP dan juga framework CodeIgniter.

Langkah pertama:

Anda boleh memuat turun library untuk membolehkan CodeIgniter berhubung dengan API Instagram di sini https://github.com/ianckc/CodeIgniter-Instagram-Library. Download fail tersebut dan masukkan ke dalan folder aplikasi anda. Ia mengandungi 3 fail iaitu:

  1. application/config/Instagram_api.php

  2. application/libraries/Instagram_api.php

  3. application/libraries/MY_Input.php


Langkah kedua:

Anda perlu daftar aplikasi anda di http://instagram.com/developer/. Pilih menu Register Your ApplicationRegister a New Client. Ada 4 item yang perlu diisi iaitu:

  • Appliaction Name — Masukkan nama aplikasi anda.

  • Description — Keterangan tentang aplikasi yang anda bangunkan.

  • Website — URL aplikasi anda.

  • OAuth redirect_uri — URL aplikasi anda setelah pengguna berjaya log masuk


Contohnya:



Selepas itu, anda akan diberikan Client ID & Client Secret.

Langkah ketiga:

Kemudian, buka fail application/config/Instagram_api.php dan masukkan Client ID, Client Secret dan juga maklumat yang anda daftarkan tadi ke fail tersebut. Lihat contoh di bawah:
$config['instagram_client_name']	= 'Instagra.my';
$config['instagram_client_id'] = '--client id anda--';
$config['instagram_client_secret'] = '--client secret anda--';
$config['instagram_callback_url'] = 'http://instagra.my/igram/authorize/';
$config['instagram_website'] = 'http://instagra.my';
$config['instagram_description'] = 'Cetak foto instagram kegemaran anda ke t-shirt';

Langkah keempat:

Buka fail controller anda dan bina satu method atau function untuk memaparkan skrin foto popular.
function popular()
{
$this->load->library('instagram_api');
$data['page_title'] = 'Foto Popular';
$data['popular_media'] = $this->instagram_api->getPopularMedia();
$data['content'] = 'popular';
$this->load->view('bootstrap/index',$data);
}

 Langkah kelima:

Bina view anda dan gunakan kod seperti berikut untuk paparkan foto popular dari Instagram.
$atts = array(
'width' => '660',
'height' => '700',
'scrollbars' => 'yes',
'status' => 'yes',
'resizable' => 'yes',
'screenx' => '0',
'screeny' => '0'
);
foreach($popular_media->data as $data):
echo anchor_popup( 'igram/photopopular/?link='.$data->images->standard_resolution->url,
'<img src="' . $data->images->thumbnail->url . '" />',
$atts);
endforeach;

Ok, itu sahaja. Dan anda boleh lihat senarai foto popular yang dikeluarkan oleh Instagram. Untuk membina sebuah aplikasi yang lengkap, banyak lagi yang perlu dilakukan.

Ini hanya panduan awal bagaimana anda hendak memulakannya. Saya harap ia dapat membantu anda memahami bagaimana menggunakan API Instagram dengan CodeIgniter.

Selamat berusaha.
Share:

Friday, October 12, 2012

Buku CodeIgniter

Dulu, saya ada menulis sebuah panduan berkaitan membina aplikasi web dengan CodeIgniter. Namun penulisan tersebut sangat ringkas dan belum disusun dengan rapi. Ia digunakan untuk latihan ke atas sekumpulan staf di tempat saya bekerja.

Jika anda berminat dan tercarai-cari panduan mengaturcara atau membangunkan aplikasi web dengan menggunakan perisisan sumber terbuka, bahasa pengataurcaraan PHP dan menggunakan framework CodeIgniter, silakan.. rujuk buku panduan ini. Ia boleh membantu anda.

Buku Codeigniter

Sekarang, saya sedang menulis draf buku yang sama untuk diterbitkan. Insyaallah, dalam bulan ini jika tiada aral melintang, ianya akan dihantar kepada penerbit untuk merialisasikan impian saya, iaitu menjadi penulis buku IT ;).

Insyaallah, semoga ia menjadi kenyataan.
Share:

Thursday, October 11, 2012

Tapis data yang mempunyai single & double quotes ke dalam Oracle

Katakan kita membangunkan satu sistem yang akan menerima input 'Nama Penuh' dari pengguna dan kita akan menyimpan data tersebut ke dalam pangkalan data Oracle.

Jika pengguna memasukkan nama seperti Fu'ad Bin Deris tanpa kita tapis data tersebut, apakah yang akan berlaku?

Saya rasa, kita pasti akan dapat error seperti ini:

Message: oci_parse(): ORA-01756: quoted string not properly terminated


Jadi, apa yang harus dilakukan?

Di dalam CodeIgniter, biasanya saya akan tapis item tersebut dengan kaedah seperti berikut sebelum melaksanakan Query bagi menyimpan data tersebut ke dalam pangkalan data:

$nama = str_replace("'", "''",$this->input->post('nama'));


Aturcara tersebut akan menukar simbol single quote (') kepada single quote yang lengkap atau berpasangan. Maka apabila Query dilaksanakan, ia secara automatik akan menukarkan semula data tersebut kepada data yang asal iaitu dengan satu single quote.

Diharap nota ringkas ini dapat membantu anda.
Share: