Basis Data I Pertemuan Ke-12 (Aplikasi Basisdata berbasis web) Noor Ifada noor.ifada@if.trunojoyo.ac.id 1
Sub Pokok Bahasan Cara Kerja: Aplikasi berbasis Web dan Aplikasi Basisdata berbasis Web (PHP MySQL) Beberapa Fungsi dalam PHP untuk mengakses BasisData MySQL Contoh Aplikasi Basisdata berbasis Web: Membuat Counter 2
Cara Kerja Aplikasi berbasis Web Aplikasi Basisdata berbasis Web (PHP-MySQL) Web Browser (Firefox, Chrome, Opera, dll) Web Server (Apache, Server-side Programming: PHP) RDBMS (MySQL) 3
Beberapa Fungsi dalam PHP untuk Akses Basisdata MySQL mysql_connect() mysql_select_db() mysql_query() mysql_num_rows() mysql_fetch_row() mysql_fetch_assoc() mysql_fetch_array() mysql_close() 4
PHP-MySQL: mysql_connect() Untuk melakukan koneksi ke server basisdata MySQL Akan menghasilkan link identifier koneksi jika koneksi berhasil, dan nilai FALSE jika gagal Sintaks: mysql_connect(nama_host, nama_user, password); Contoh: $connection = mysql_connect("localhost", "root", ""); if (!$connection) { die("cannot connect to server :.mysql_error()); } echo Connected Successfully ; 5
PHP-MySQL: mysql_select_db() (contd-2) Untuk memilih atau mengaktifkan basisdata Akan menghasilkan nilai true jika basisdata dapat diakses, dan nilai FALSE jika gagal Sintaks: Contoh: mysql_select_db( nama_database,link_identifier_koneksi); $connection = mysql_connect("localhost", "root", ""); if (!$connection) { die("cannot connect to server :.mysql_error()); } $db = mysql_select_db( db_example", $connection); if (!$db) { die( Error :.mysql_error()); } 6
PHP-MySQL: mysql_query() (contd-3) Untuk menjalankan query yang terdapat di MySQL Akan mengembalikan hasil query jika query dapat dieksekusi, dan nilai FALSE jika gagal Sintaks: Contoh: mysql_select_db( query,link_identifier_koneksi); $connection = mysql_connect("localhost", "root", ""); $db = mysql_select_db( db_example", $connection); $query = mysql_query( SELECT * FROM table1", $connection); if (!$query) { die( Error :.mysql_error()); } 7
PHP-MySQL: mysql_num_rows() (contd-4) Untuk mengambil banyaknya baris/record yang dihasilkan oleh perintah query SELECT Akan mengembalikan angka yang menunjukkan banyaknya baris/record yang dihasilkan oleh perintah query SELECT Sintaks: mysql_num_rows( query SELECT ); Contoh: $connection = mysql_connect("localhost", "root", ""); $db = mysql_select_db( db_example", $connection); $query = mysql_query( SELECT * FROM table1", $connection); $num_of_rec = mysql_num_rows($query); echo Number of records =.$num_of_rec; 8
PHP-MySQL: mysql_fetch_row() (contd-5) Untuk mengambil satu baris data yang dihasilkan oleh perintah SELECT. Data diberikan dalam bentuk array Akan mengembalikan array yang berisi seluruh kolom/field dari satu baris/record data, dan nilai FALSE jika tidak ada lagi data yang ditunjuk oleh pointer record Sintaks: mysql_fetch_row( query SELECT ); Contoh: $query = mysql_query ( SELECT column1,column2 FROM table1 WHERE column1= 1 ", $connection); if (!$query) { echo Error :.mysql_error(); exit; } $data = mysql_fetch_rows($query); echo $data[0]; echo $data[1]; 9
PHP-MySQL: mysql_fetch_assoc() (contd-6) Untuk mengambil satu baris data yang dihasilkan oleh perintah SELECT. Data diberikan dalam bentuk associative array Akan mengembalikan associative array yang berisi seluruh kolom/field dari satu baris/record data, dan nilai FALSE jika tidak ada lagi data yang ditunjuk oleh pointer record Sintaks: mysql_fetch_assoc( query SELECT ); Contoh: $query = mysql_query ( SELECT column1,column2 FROM table1 WHERE column1= 1 ", $connection); if (!$query) { echo Error :.mysql_error(); exit; } $data = mysql_fetch_assoc($query); echo $data[ column1 ]; echo $data[ column2 ]; 10
PHP-MySQL: mysql_fetch_array() (contd-7) Untuk mengambil satu baris data yang dihasilkan oleh perintah SELECT. Data diberikan dalam bentuk array biasa (sama dengan mysql_fetch_row) atau array associative (sama dengan mysql_fetch_assoc) Akan mengembalikan array yang berisi seluruh kolom/field dari satu baris/record data, dan nilai FALSE jika tidak ada lagi data yang ditunjuk oleh pointer record Sintaks: mysql_fetch_array( query SELECT,result_type); (Result_type: MYSQL_NUM MYSQL_ASSOC) Contoh (untuk result_type berbentu MYSQL_NUM): $connection = mysql_connect("localhost", "root", ""); $db = mysql_select_db( db_example", $connection); $query = mysql_query( SELECT column1,column2 FROM table1", $connection); while ($row = mysql_fetch_array($query, MYSQL_NUM)){ echo Column 1: ".$row[0]. " Column 2: ".$row[1]; } 11
PHP-MySQL: mysql_close() (contd-8) Untuk menutup koneksi ke server basisdata MySQL yang telak dilakukan Akan menghasilkan nilai true jika penutupkan koneksi berhasil dilakukan, dan nilai false jika gagal Sintaks: mysql_close(link_identifier_koneksi); Contoh: $connection = mysql_connect("localhost", "root", ""); if (!$connection) { die("cannot connect to server :.mysql_error()); } echo Connected Successfully ; mysql_close($connection); 12
Urutan Operasi Akses MySQL menggunakan PHP 1. Membuat koneksi ke basisdata 2. Mendeklarasikan suatu variabel string yang berisi sintaks perintah MySQL yang akan dilakukan 3. Melaksanakan sintaks MySQL menggunakan fungsi untuk menghasilkan keluaran yang akan ditampilkan. Hasil ditampung di dalam variabel yang telah dideklarasikan sebelumnya 4. Mengambil hasil dari sintaks MySQL yang dilaksanakan dengan menggunakan fungsi mysql_fetch_row(), mysql_fetch_array(), mysql_num_rows(), dan lain-lain (bergantung pada format keluaran yang diinginkan) 13
Contoh Aplikasi: Membuat Counter Langkah-langkah yang dilakukan: 1. Membuat basisdata baru dengan namadb_contoh 2. Membuat tabel baru dengan namacounter. Isi tabel dengan nilai (awal) 0. 3. Membuat file PHP (counter.php) untuk meng-update nilai counter. Setiap kali halaman web dibuka, PHP akan meng-update nilai counter yang ada dalam basisdata db_contoh 14
Langkah 1&2: Membuat Basisdata dan Tabel create DATABASE db_contoh; create TABLE tb_counter ( counter SMALLINT(6) NOT NULL PRIMARY KEY ); INSERT INTO tb_counter VALUES (0); 15
Langkah 3: Membuat file PHP (counter.php) <html> <head> <title> Counter </title> </head> $connection = mysql_connect("localhost", "root", ""); $db = mysql_select_db("db_contoh", $connection) or die ("Cannot connect to Database"); mysql_query("update tb_counter SET counter = counter + 1",$connection) or die ("Error on SQL for updating!"); $query = "SELECT counter FROM tb_counter"; $result = mysql_query($query,$connection) or die ("Error on SQL for selecting!"); $row = mysql_fetch_row($result); echo "<b> You re visitor number : "; echo $row[0]."</b>"; </html> 16