variabelphp
TRANSCRIPT
Variabel
Dasar-dasar
Variabel dalam PHP ditandai dengan karakter dollar kemudian diikuti dengan nama variabelnya sendiri. Nama variabel membedakan antara huruf kecil dan besar (case-sensitive).
Nama variabel mengikutai aturan yang sama dengan label yang lain dalam PHP. Nama variabel
yang diperbolehkan dimulai dengan huruf atau garis-bawah, kemudian diikuti dengan huruf, angka atau garis-bawah. Dalam regular expression, akan dituliskan sebagai : ’[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*’
Catatan: Untuk keperluan kita di sini yang dimaksud dengan huruf adalah a-z, A-Z, dan karakter
ASCII dari 127 hingga 255 (0x7f-0xff).
1
2 $var = "Bob";
3 $Var = "Joe";
4 echo "$var, $Var"; // menghasilkan "Bob, Joe"
5
6 $4site = ’not yet’; // tidak boleh; dimulai dengan angka
7 $_4site = ’not yet’; // boleh; dimulai dengan garis-bawah
8 $täyte = ’mansikka’; // boleh; ’ä’ adalah ASCII 228.
9
Dalam PHP, variabel selalu diisi dengan nilai. Dengan kata lain, ketika anda mengisikan sebuah ekspresi pada suatu variabel, semua nilai ekspresi asal akan disalin ke dalam variabel tujuan. Ini berarti setelah mengisikan nilai suatu variabel ke variabel yang lain, jika kita mengubah nilai
salah satu variabel tidak akan mempengaruhi variabel yang lain. Untuk lebih jelas mengenai pengisian ini, lihat Ekspresi.
PHP4 memberikan cara lain untuk mengisikan nilai ke variabel: assign by reference. Artinya,
variabel yang baru merujuk (dengan kata lain, "menjadi alias untuk" atau "menunjuk pada") variabel asal. Perubahan pada variabel yang baru akan mempengaruhi variabel asal, dan sebaliknya. Ini juga berarti tidak ada proses penyalinan; sehingga pengisian variabel bekerja
lebih cepat. Akan tetapi perlu diingat peningkatan kecepatan hanya dapat diamati pada pengulangan yang banyak atau pada pengisian array atau objek yang besar.
Untuk mengisikan dengan rujukan, cukup menuliskan karakter ampersand (&) di awal variabel
yang akan diisikan (variabel asal). Sebagai contoh, akan mencetak output 'Nama saya Bob' dua kali.
1
2 <?php
3 $foo = 'Bob'; // Mengisikan kata 'Bob' ke variabel $foo
4 $bar = &$foo; // Merujuk pada $foo melalui $bar.
5 $bar = "Nama saya $bar"; // Menimpa variabel $bar dengan nilai yang
baru
6 echo $foo; // $foo akan ditimpa juga.
7 echo $bar;
8 ?>
9
Satu masalah penting yang harus diingat adalah, hanya nama variabel yang bisa diisikan dengan rujukan.
1
2 <?php
3 $foo = 25;
4 $bar = &$foo; // Pengisian yang diperbolehkan.
5 $bar = &(24 * 7); // Tidak boleh!; tidak merujuk pada nama variabel.
6
7 function test() {
8 return 25;
9 }
10
11 $bar = &test(); // Tidak benar; karena tes() adalah fungsi.
12 ?>
13
Variabel-variabel Terdefinisi
PHP menyediakan banyak variabel yang telah terdefinisi untuk semua skrip yang dijalankannya.
Banyak dari variabel-variabel ini, tidak dapat didokumentasikan sepenuhnya karena sangat tergantung pada server yang dijalankan, versi dan setup server, dan faktor yang lainnya. Beberapa variabel tidak bisa didapatkan jika PHP dijalankan pada mode perintah baris
(command-line).
Tanpa melihat faktor-faktor tersebut, disini diberikan variabel terdefinisi yang bisa dipakai jika PHP3 berjalan sebagai module server Apache.
Untuk mendapatkan daftar variabel terdefinsi (dan informasi yang lain), silahkan lihat (dan
gunakan) phpinfo().
Catatan: Daftar berikut hanyalah petunjuk sederhana mengenai variabel terdefinisi yang anda harapkan dapat anda pakai dalam skrip anda.
Variable-variabel dari Apache
Variabel-variabel ini dibuat oleh webserver Apache. Jika anda menjalankan webserver yang lain, tidak ada jaminan ia menyediakan variabel-variabel yang sama; mungkin ia tidak menyediakan beberapa variabel tapi menyediakan variabel lain yang tidak disebutkan disini. Boleh dikatakan,
kebanyakan dari variabel-variabel ini disebutkan di spesifikasi CGI 1.1 jadi masih ada harapan untuk bisa memakainya.
Sebagai catatan, beberapa dari variabel-variabel ini bisa dipakai (atau punya arti) jika PHP dijalankan dari perintah baris.
GATEWAY_INTERFACE Revisi spesifikasi CGI yang digunakan oleh server, misalnya; i.e. 'CGI/1.1'.
SERVER_NAME Nama host server dimana skrip dijalankan. Jika skrip dijalankan pada virtual host, maka
variabel ini akan berisi nilai yang didefinisikan untuk virtual host tersebut. SERVER_SOFTWARE
String identifikasi string, diletakkan di dalam header ketika menangapi permintaan.
SERVER_PROTOCOL Nama dan revisi protokol informasi darimana permintaan dilakukan; misalnya
'HTTP/1.0'. REQUEST_METHOD
Metode permintaan yang dipakai ketika mengakses halaman; misalnya 'GET', 'HEAD',
'POST', 'PUT'. UERY_STRING
String permintaan, jika ada, darimana halaman diakses. DOCUMENT_ROOT
Direktori dokumen root dimana didalamnya berisi skrip yang sedang dilaksanakan,
seperti didefinisikan di file konfigurasi server. HTTP_ACCEPT
Berisi Accept:header permintaan, jika ada.
HTTP_ACCEPT_CHARSET
Berisi Accept-Charset: header permintaan, jika ada. Contoh: 'iso-8859-1,*,utf-8'.
HTTP_ENCODING Berisi Accept-Encoding: header permintaan, jika ada. Contoh: 'gzip'.
HTTP_ACCEPT_LANGUAGE
Berisi Accept-Language: header permintaan, jika ada. Contoh: 'en'. HTTP_CONNECTION
Berisi Connection: header permintaan, jika ada. Contoh: 'Keep-Alive'.
HTTP_HOST Berisi Host: header permintaan, jika ada.
HTTP_REFERER
Alamat halaman (jika ada) yang diberikan oleh browser pada halaman yang aktif. Variabel ini diset oleh browser pengguna, tidak semua browser memberikan variabel ini.
HTTP_USER_AGENT
Berisi User_Agent: header permintaan, jika ada. String ini menunjukkkan software
browser yang dipakai untuk melihat halaman yang sedang aktif; misalnya; Mozilla/4.5
[en] (X11; U; Linux 2.2.9 i586). Anda dapat memakai nilai ini dengan
get_browser() untuk menyesuaikan kemampuan browser pemakai. REMOTE_ADDR
Alamat IP darimana pengguna melihat halaman saat ini.
REMOTE_PORT Port yang dipakai oleh komputer pemakai untuk berkomunikasi dengan server web.
SCRIPT_FILENAME Nama path absolut dari skrip yang sedang dilaksanakan.
SERVER_ADMIN Nilai yang diberikan untuk direktive SERVER_ADMIN (Apache) dalam file konfigurasi server web. Jika skrip dijalankan pada host virtual, variabel ini akan berisi nilai yang
diberikan untuk host virtual tersebut. SERVER_PORT
Port mesin server yang dipakai oleh server web untuk berkomunikasi. Untuk setup default, akan berisi '80'; jika menggunakan SSL, misalnya, nilai ini akan diubah menjadi nomor port berapa saja yang didefinisikan untuk port HTTP aman.
SERVER_SIGNATURE String ini berisi versi server dan nama host virtual yang ditambahkan pada halaman yang
dihasilkan server, jika diaktifkan. PATH_TRANSLATED
Path dari sript yang sedang berjalan berdasarkan Sistem filenya-(bukan dokumen root);
setelah server mengerjakan pemetaan virtual ke real. (Catatan Penerjemah: ini berhubungan sistem file yang dipakai; misalnya untuk linux kita memakai notasi
/www/htdocs sedangkan untuk windows/dos kita memakai \www\htdocs). SCRIPT_NAME
Berisi path skrip yang sedang berjalan. Ini sangat berguna untuk halaman-halaman yang
perlu merujuk pada pada diri mereka sendiri. REQUEST_URI
URI yang diberikan untuk mengakses halaman yang sedang aktif; misalnya '/index.html'.
Variable-variabel Lingkungan
Variabel-variabel ini diimport ke dalam variabel global PHP dari variabel lingkungan dimana PHP dijalankan. Kebanyakan disediakan oleh program shell dimana PHP dijalankan dan system
yang berbeda akan menjalankan program shell yang berbeda pula, daftar yang tetap tidak mungkin diberikan karena variasi ini. Silahkan lihat dokumentasi program shell untuk variabel
yang diberikan oleh lingkungan shell yang anda pakai.
Variabel-variabel yang lain termasuk variabel yang diberikan oleh CGI, akan diberikan juga tidak peduli PHP dijalankan sebagai modul server atau pemroses CGI.
Variable-variabel PHP
Ini adalah variabel yang dibuat oleh PHP sendiri.
argv
Array argument yang diberikan pada skrip. Jika skrip dijalankan dalam mode perintah baris maka variabel ini bisa berisi parameter seperti gaya bahasa C. Ketika dipanggil
dengan metode GET, variabel ini akan berisi string permintaan yang diberikan. argc
Berisi jumlah variabel yang diberikan saat menjalankan skrip (jika dijalankan dalam mode perintah baris).
PHP_SELF
Nama file yang skrip yang sedang berjalan, relatif terhadap dokumen root. Jika PHP dijalankan sebagai pemroses perintah baris, variabel ini tidak diberikan.
HTTP_COOKIE_VARS Array asosiatif variabel-variabel yang diberikan kepada skrip lewat cookies HTTP. Hanya diberikan jika pelacakan variabel diaktifkan baik lewat direktif konfigurasi
track_vars atau direktif <?php_track_vars?>.
HTTP_GET_VARS Array asosiatif variabel-variabel yang diberikan kepada skrip lewat metode HTTP GET.
Hanya diberikan jika pelacakan variabel diaktifkan baik lewat direktif konfigurasi track_vars atau direktif <?php_track_vars?>.
HTTP_POST_VARS Array asosiatif variabel-variabel yang diberikan kepada skrip lewat metode HTTP POST.
Hanya diberikan jika pelacakan variabel diaktifkan baik lewat direktif konfigurasi track_vars atau direktif <?php_track_vars?>.
Ruang Lingkup Variabel
Ruang lingkup sebuah variabel tergantung dimana ia didefinisikan. Pada umumnya variabel-variabel PHP hanya mempunyai satu ruang lingkup. Ruang lingkup ini meluas kepada file-file
yang disisipkan, dengan perintah include atau require. Sebagai contoh,
1
2 $a = 1;
3 include "b.inc";
4
Disini variabel $a dapat dipakai dalam skrip b.inc yang disisipkan. Dalam fungsi yang kita definisikan sendiri ruang lingkup fungsi tersebut yang dipakai. Semua variabel yang digunakan
dalam suatu fungsi secara default terbatas pada ruang lingkup fungsi tersebut. Sebagai contoh,
1
2 $a = 1; /* global scope */
3
4 Function Test () {
5 echo $a; /* rujukan ke variabel lokal */
6 }
7
8 Test ();
9
Skrip ini tidak akan memberikan hasil karena perintah echo merujuk pada variabel $a yang berlaku di lokal, dan variabel ini belum diisikan dengan nilai pada ruang lingkup tersebut. Anda mungkin dapat melihat bahwa ini sedikit berbeda bahasa C, pada C variabel global secara otomatis dikenali oleh fungsi kecuali didefinisikan lagi dalam fungsi. Ini bisa menyebabkan
masalah jika secara tak sengaja seseorang mengubah variabel global. Dalam PHP variabel global harus dideklarasikan global di dalam fungsi jika fungsi tersebut ingin menggunakannya. Contoh,
1
2 $a = 1;
3 $b = 2;
4
5 Function Sum () {
6 global $a, $b;
7
8 $b = $a + $b;
9 }
10
11 Sum ();
12 echo $b;
13
Skrip diatas akan menghasilkan "3". Dengan mendeklarasikan $a dan $b sebagai variabel global
dalam fungsi, semuanya proses yang berhubungan dengan keduanya akan mengubah variabel global. Tidak batasan jumlah variabel global yang dapat dimanipulasi oleh sebuah fungsi.
Cara kedua untuk mengakses variabel dari ruang lingkup global adalah dengan menggunakan array khusus yang didefinisikan oleh PHP, yaitu $GLOBALS. Contoh sebelumnya dapat ditulis
sebagai berikut,
1
2 $a = 1;
3 $b = 2;
4
5 Function Sum () {
6 $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
7 }
8
9 Sum ();
10 echo $b;
11
Array $GLOBALS adalah array asosiatif dimana nama variabel global dipakai sebagai key dan isi variabel tersebut adalah nilai elemen arraynya.
Sifat penting lainnya dari ruang lingkup adalah apa yang disebut dengan variabel static. Variabel
static hanya terdapat dalam ruang lingkup lokal suatu fungsi, akan tetapi ia tidak akan kehilangan nilainya jika pelaksanaan program keluar dari ruang lingkup ini. Perhatikan contoh ini:
1
2 Function Test () {
3 $a = 0;
4 echo $a;
5 $a++;
6 }
7
Fungsi ini tidak begitu berguna karena setiap ia dipanggil ia akan memberikan nilai 0 pada $a kemudian mencetak "0". $a++ yang menaikkan nilai variabel tidak ada gunanya karena jika fungsi sudah selesai dijalankan variabel $a akan dihapus. Agar fungsi ini ada gunanya, supaya
tidak kehilangan nilai perhitungan yang berlaku, variabel $a harus dideklarasikan sebagai static:
1
2 Function Test () {
3 static $a = 0;
4 echo $a;
5 $a++;
6 }
7
Sekarang setiap fungsi Test() dipanggil ia akan mencetak nilai $a dan menaikkan nilainya.
Variabel static juga menyediakan satu cara yang berhubungan fungsi- fungsi rekursif. Sebuah fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Kita harus berhati-hati menulis
fungsi rekursif sebab bisa saja fungsi tersebut akan berulang terus menerus. Anda harus yakin ada kondisi yang bisa dipenuhi supaya proses pengulangan berhenti. Fungsi rekursi sederhana
berikut akan menghitung sampai 10, dengan menggunakan variabel static $count untuk mengetahui kondisi kapan harus berhenti.
1
2 Function Test () {
3 static $count = 0;
4
5 $count++;
6 echo $count;
7 if ($count < 10) {
8 Test ();
9 }
10 $count--;
11 }
12
Variabel yang berubah-ubah
Kadang-kadang lebih mudah jika kita bisa membuat variabel yang bisa berubah-ubah namanya.
Yaitu, nama variabel yang dapat diset dan digunakan secara dinamis. Variabel normal diset dengan perintah seperti berikut,
1
2 $a = "hello";
3
Variabel yang berubah mengambil nilai sebuah variabel dan memperlakukannya sebagai nama variabel. Pada contoh diatas, hello, dapat dipakai sebagai nama variabel dengan menambahkan dua tanda dollar. Lihat contoh berikut,
1
2 $$a = "world";
3
Pada tahap ini dua variabel telah didefinisikan dan disimpan dalam daftar simbol PHP: $a berisi "hello" dan $hello berisi "world". Jadi, perintah:
1
2 echo "$a ${$a}";
3
akan menghasilkan hasil yang sama seperti,
1
2 echo "$a $hello";
3
keduanya akan mencetak kalimat: hello world.
Untuk memakai variabel yang berubah-ubah dengan array, anda harus memperhitungkan masalah yang bisa saja membingungkan. Sebagai contoh, jika anda menulis $$a[1] maka pemroses harus tahu apakah anda bermaksud menggunakan $a[1] sebagai variabel atau anda
menginginkan $$a sebagai variabel dan [1] adalah indeks dari variabel tersebut. Sintaksis untuk menghindari keraguan seperti ini adalah:${$a[1]} untuk kasus yang pertama dan ${$a}[1] untuk kasus yang kedua.
Variabel-variabel dari luar PHP
Form HTML (GET dan POST)
Ketika sebuah formulir dikirimkan pada skrip PHP, semua variabel dari formulir tersebut secara otomatis bisa di pakai dalam skrip PHP. Sebagai contoh lihat contoh berikut,
Contoh 7-1. Variabel formulir sederhana
1
2 <form action="foo.php3" method="post">
3 Name: <input type="text" name="name"><br>
4 <input type="submit">
5 </form>
6
Ketika dikirimkan, PHP akan membuat variabel $name, yang berisi apa saja yang diberikan pada
field Name: di formulir.
PHP juga mengerti array dalam konteks variabel-variabel formulir, akan tetapi hanya terbatas pada ukuran satu dimensi. Anda bisa, sebagai contoh, mengumpulkan variabel-variabel yang
berhubungan, atau menggunakan kemampuan ini untuk mengambil nilai dari input select yang banyak.
Contoh 7-2. Variabel formulir yang lebih kompleks. 1
2 <form action="array.php" method="post">
3 Name: <input type="text" name="personal[name]"><br>
4 Email: <input type="text" name="personal[email]"><br>
5 Beer: <br>
6 <select multiple name="beer[]">
7 <option value="warthog">Warthog
8 <option value="guinness">Guinness
9 <option value="stuttgarter">Stuttgarter Schwabenbräu
10 </select>
11 <input type="submit">
12 </form>
13
Jika track_vars PHP diaktifkan, baik dengan mengunakan setting konfigurasi track_vars atau direktif <?php_track_vars?>, maka variable yang dikirimkan melalui metode POST atau GET
akan dapat ditemukan dalam array asosiatif global $HTTP_POST_VARS dan $HTTP_GET_VARS.
Nama-nama Variabel IMAGE SUBMIT
Ketika mengirimkan formulir, kita bisa memakai gambar bukan tombol submit standar dengan
tag seperti berikut,
1
2 <input type=image src="image.gif" name="sub">
3
Saat pengguna menekan tombol mouse di dalam daerah gambar, formulir akan dikirim ke server dengan dua variabel tambahan, yaitu sub_x and sub_y. Variabel tersebut akan berisi koordinat dalam gambar yang di klik. Bagi yang sudah berpengalaman mungkin dapat melihat nama
variabel yang dikirimkan oleh browser berisi tanda "titik" bukan garis bawah, akan tetapi PHP akan mengkonversi titik tersebut menjadi garis bawah secara otomatis.
Cookie HTTP
PHP secara transparan mendukung cookies HTTP sebagaimana yang didefinisikan oleh Spesifikasi Netscape. Cookies adalah suatu mekanisme untuk menyimpan data di browser remote dan mengidentifikasi user. Anda dapat memberikan cookie menggunakan fungsi
SetCookie(). Cookie adalah bagian dari header HTTP, jadi fungsi SetCookie harus dipanggil sebelum output yang lain dikirim ke browser. Ini adalah sama dengan batasan fungsi Header().
Setiap cookie yang dikirim kepada server dari klien akan otomatis dijadikan variabel PHP seperti halnya data dengan metode GET dan POST.
Jika anda ingin memberikan banyak nilai pada satu cookie, tambahkan [] pada nama cookie.
Sebagai contoh,
1
2 SetCookie ("MyCookie[]", "Testing", time()+3600);
3
Sebagai catatan bahwa sebuah cookie akan menimpa cookie sebelumnya dengan nama cookie yang sama kecuali path domainnya berbeda. Jadi, untuk keranjang belanja anda mungkin ingin
menyimpan sebuah penghitung dan memakainya nanti. Contoh-3. Contoh SetCookie
1
2 $Count++;
3 SetCookie ("Count", $Count, time()+3600);
4 SetCookie ("Cart[$Count]", $item, time()+3600);
5
Variabel-variabel Lingkungan
PHP secara otomatis akan membuat variabel lingkungan menjadi variabel PHP seperti yang lain.
1
2 echo $HOME; /* Shows the HOME environment variable, if set. */
3
Informasi yang datang dari mekanisme GET, POST dan cookie juga secara otomatis menciptakan variabel, kadang-kadang lebih baik membaca variabel dari lingkungan secara
eksplisit untuk memastikan bahwa anda mendapatkan versi yang tepat dari variabel yang bersangkutan. Fungsi getenv() dapat digunakan untuk ini. Anda juga bisa membuat variabel
lingkungan dengan fungsi putenv().
Titik di dalam nama variabel masukan
Biasanya, PHP tidak mengabaikan nama variabel jika mereka diberikan pada suatu skrip. Akan tetapi, harus diingat bahwa tanda "titik" adalah karakter yang tidak boleh dipakai sebagai nama
variabel dalam PHP. Sebagai alasan, lihat contoh berikut,
1
2 $varname.ext; /* nama variabel yang tidak diperbolehkan */
3
Sekarang yang dilihat oleh pemroses adalah variabel yang diberi nama $varname, diikuti operator penggabungan string, kemudian diikuti dengan string biasa (yaitu, string yang tidak diberi tanda petik dan bukan nama yang didefinisikan di tempat lain) 'ext'. Tentu saja, ini tidak
akan menghasilkan sesuai dengan apa yang diharapkan.
Karena alasan ini, harus selalu diingat bahwa PHP secara otomatis akan mengganti setiap tanda "titik" nama-nama variabel yang diberikan kepadanya dengan garis bawah.
Menentukan tipe data variabel
Karena PHP menentukan tipe variabel dan mengkonversinya jika perlu, tidak selalu jelas sebuah variabel itu mempunyai tipe apa pada saat tertentu. PHP menyediakan beberapa fungsi yang
dapat menentukan jenis data suatu variabel. Mereka itu adalah gettype(), is_long(), is_double(), is_string(), is_array(), dan is_object().
Membuat peta di php
Tulis kode berikut pada sebuah file dengan nama (map_proc.php) ;
PHP Code: <?php
// buka koneksi ke mySQL database, dan pilih tabel "hotel"
$maps = mysql_pconnect("localhost", "root", "");
mysql_select_db('hotel', $maps);
// tabel peta diminta
$qmaps = mysql_query("SELECT * FROM peta", $maps);
// hasil query disimpan kedalam variabel $str_xml
//xml-firstchild
$str_xml= "<maps>\n";
//xml-childnodes
while($row = mysql_fetch_row($qmaps)){
$str_xml.= "<item";
//xml-atribute
$str_xml.= " id='".$row[0]."'";
$str_xml.= " cx='".$row[1]."'";
$str_xml.= " cy='".$row[2]."'";
$str_xml.= " description='".$row[3]."'";
$str_xml.= " />\n";
}
$str_xml.= "</maps>";
mysql_free_result($qmaps);
// cetak data
echo $str_xml;
?>
Berikut ini adalah hasil query ke database yang nantinya akan diproses oleh flash movie, yakni
beberapa childnode dengan attributes yang berisikan nilai dari rekaman data yang ada pada tabel“peta". HTML Code:
<maps>
<item id='1' cx='110' cy='50' description='lobby' />
<item id='2' cx='110' cy='200' description='parkir' />
</maps>
Client side (Flash)
Buat file dengan nama “map_view.fla”, letakkan gambar peta pada layer 1 frame 1.
Persiapkan gambar penanda lokasi serta sebuah dynamicText dengan nama variabel “desc” dan konversi
menjadi movieclip dengan linkage identifier “mc_icon” (pilih gambar penanda dan dynamicText “desc”,
tekan F8 untuk menampilkan dialog convert to symbol.Hapus movieclip “mc_icon” tersebut dari stage.
Tulis kode berikut pada timeline utama layer 2 frame 1, setelah itu movie di-publish (swf dan html)
var ox:XML = new XML();
ox.ignoreWhite = true;
ox.onLoad = function (stat){
if(stat==true){
var fc = ox.firstChild.childNodes;
// telusuri childnodes
for(i=0;i<fc.length;i++){
// panggil fungsi set_icon dengan parameter fc[i]
set_icon(fc[i]);
}
}
}
ox.load("map_proc.php");
function set_icon(info){
var mc_id = info.attributes.id; // id obyek
var mc_cx = info.attributes.cx; // kordinat x
var mc_cy = info.attributes.cy; // kordinat y
var mc_desc = info.attributes.description; // deskripsi singkat
// ambil movie_clip "mc_icon" dari library
// tempatkan kedalam stage dengan nama baru "mc_icon_" + mc_id
attachMovie("mc_icon","mc_icon_"+mc_id,_root.getNextHighestDepth());
// movieclip yang baru, di identifikasi sebagai variabel
var mc_icon:MovieClip;
mc_icon = this["mc_icon_"+mc_id];
// property movieclip, disesuaikan
mc_icon._x = mc_cx;
mc_icon._y = mc_cy;
mc_icon.desc= mc_desc;
}
Input Data Ke MySQL Secara Simultan Via Form dengan
PHP
September 14th, 2009 | by rosihanari | 20,209 views | Cetak Artikel Ini
Free Software
Seringkali kita membuat script untuk input data hanya terdiri dari sebuah data atau record saja.
Itu sangat-sangat mudah dilakukan. Lantas, bagaimana bila sekali entri langsung beberapa record sekaligus secara simultan? Dengan demikian kita bisa entri beberapa data sekaligus tanpa repot bolak-balik membuka form baru ketika mau menyisipkan data. Kira-kira hal ini bisa dilakukan
nggak ya? He.. 3x… Ya jelas bisa donk! Oleh karena itu akan saya paparkan bagaimana ide membuat script seperti itu dengan PHP melalui artikel ini.
Sebelum kita mulai membahas cara pembuatannya, ada baiknya Anda simak gambar berikut ini
yang merupakan grand design studi kasus yang akan kita buat sebagai contoh input data simultan ini. Studi kasus yang saya ambil terkait dengan entri data mahasiswa.
Pertama, user diminta memasukkan jumlah data yang mau dientri terlebih dahulu (lihat gambar di bawah ini)
Kedua, setelah user memasukkan jumlah data yang mau dientri, selanjutnya muncul form dengan
komponen entri sejumlah data yang tadi dimasukkan. Pada form inilah data yang mau disimpan ke database, dimasukkan.
Setelah form di atas disubmit, maka data akan tersimpan ke database, seperti tampak pada
Gambar berikut ini
Nah… bagaimana cara membuatnya?
Pertama kita siapkan dahulu tabel database MySQL nya. Pada studi kasus ini, kita buat simpel saja deh (cukup 2 field saja dulu)
view sourceprint? 1.CREATE TABLE mhs ( 2.nim varchar(5), 3.namamhs varchar(20), 4.PRIMARY KEY (nim) 5.);
Kemudian kita buat form untuk memasukkan jumlah datanya terlebih dahulu.
form.html
view sourceprint? 1.<h1>Input Data Mahasiswa</h1> 2. 3.<form method="post" action="submit.php"> 4.Jumlah Data <input type="text" name="jum"> <input type="submit" name="submit" value="Submit"> 5.</form>
Saya kira untuk membuat form di atas tidak ada masalah kan?
Berikutnya kita buat script untuk menampilkan komponen inputnya sejumlah data yang tadi
dimasukkan pada form di atas. Konsepnya adalah kita gunakan looping untuk menampilkan komponen inputnya. Lantas… loopingnya dilakukan berapa kali? ya… sebanyak jumlah datanya donk.
submit.php
view sourceprint? 01.<h1>Input Data Mahasiswa</h1> 02.
03.<form method="post" action="insert.php"> 04.<table border="1"> 05.<tr><td>NIM</td><td>NAMA MHS</td></tr> 06. 07.<?php 08.$n = $_POST['jum']; // membaca jumlah data 09. 10.for ($i=1; $i<=$n; $i++) 11.{ 12.echo "<tr><td><input type='text' name='nim".$i."'></td><td><input type='text' name='nama".$i."'></td></tr>"; 13.} 14.?> 15. 16.</table> 17.<br> 18.<input type="hidden" name="jum" value="<?php echo $n; ?>"> 19.<input type="submit" name="submit" value="Submit"> 20.</form>
Bila Anda perhatikan script di atas, maka nama komponen untuk input NIM berbentuk
view sourceprint? 1.<input type='text' name='nim".$i."'>
yang mana nantinya looping ($i=1, 2, 3, …, $n) akan membentuk komponen-komponen dengan nama
view sourceprint? 1.<input type='text' name='nim1'> 2.<input type='text' name='nim2'> 3.<input type='text' name='nim3'> 4.. 5.. 6.dst
Nah… hal yang sama kita buat juga untuk komponen input nama mahasiswa.
Kemudian, coba perhatikan pula bahwa di bagian akhir script terdapat perintah
view sourceprint? 1.<input type="hidden" name="jum" value="<?php echo $n; ?>">
Perintah tersebut akan menghasilkan komponen hidden untuk menyimpan nilai $n (banyaknya
data). Nilai ini nanti akan ikut disubmit ke script berikutnya guna pemrosesan lebih lanjut.
Terakhir.. kita buat script untuk insert datanya. Untuk membuat script insert data secara simultan ini, mungkin yang menjadi kendala adalah bagaimana cara membaca semua data yang telah
diinputkan dalam form sebelumnya untuk kemudian disimpan ke dalam database. Adapun konsep pembacaan datanya adalah dengan menggunakan looping juga. Looping ini dilakukan
sebanyak jumlah datanya ($n). Oleh karena itulah pada script ini kita butuh nilai $n yang ikut
tersubmit dari script sebelumnya.
insert.php
view sourceprint? 01.<?php
02. 03.// koneksi ke mysql 04.mysql_connect("dbhost", "dbuser", "dbpass"); 05.mysql_select_db("dbname"); 06. 07.$n = $_POST['jum']; // membaca jumlah data 08. 09.// looping 10.for ($i=1; $i<=$n; $i++) 11.{ 12.$datanim = $_POST['nim'.$i]; 13.$datanama = $_POST['nama'.$i]; 14. 15.if ((!empty($datanim)) && (!empty($datanama))) 16.{ 17.$query = "INSERT INTO mhs (nim, namamhs) VALUES ('$datanim', '$datanama')"; 18.$hasil = mysql_query($query); 19. 20.if ($hasil) echo "Input data sukses<br>"; 21.else echo "Input data gagal<br>"; 22.} 23.} 24. 25.?>
Perhatikan perintah $datanim = $_POST['nim'.$i]; yang terdapat dalam looping di atas.
Perintah tersebut digunakan untuk membaca value yang diinputkan dari komponen form bernama ‘nim1‘, ‘nim2‘, … dst. Hal yang sama juga berlaku untuk perintah $datanama =
$_POST['nama'.$i];. Setelah value NIM dan Nama Mhs dari komponen pertama (‘nim1‘ dan
‘nama1‘) dibaca, selanjutnya baru disimpan ke database. Kemudian pembacaan dan insert data ke
database dilanjutkan pada komponen kedua (‘nim2‘ dan ‘nama2‘), begitu seterusnya sampai
dengan komponen terakhir.
Oya.. tambahan lagi, dalam script di atas juga terdapat statement
view sourceprint? 1.if ((!empty($datanim)) && (!empty($datanama))) 2.{ 3.... 4.}
Statement tersebut digunakan untuk mengecek jika ada baris komponen form yang tidak diisi NIM maupun nama mahasiswanya. Proses insert data ke database hanya akan dilakukan bila
komponen input NIM dan nama mahasiswanya tidak kosong.