11
PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016 39 Aplikasi Web dengan PHP dan MySQL Perpaduan antara web programming dan database akan memberikan kesan yang lebih menarik dan interaktif terhadap keberadaan web kita. Demikian pula kemampuan PHP dalam menangani berbagai jenis database, membuat PHP menjadi dipercaya oleh kalangan programmer web untuk membangun aplikasi web yang interaktif. Saat ini PHP mampu berkomunikasi dan mengelola dengan database seperti PostgreSQL dan MySQL. Pada bahasan ini kita akan terfokus pada pengelolaan database MySQL saja. Sintaks PHP untuk berkomunikasi dengan database MySQL adalah: <?php $host=”nama_host”; $user=”nama_user”; $password=”password”; $namadb=”nama_database”; $koneksi=mysql_connect($host,$user,$password); mysql_connect_db($namadb) $sql=”select * from nama_tabel” $res=mysql_query($sql); ?> Penjelasan dari script di atas adalah: $host adalah nama variable yang berisi nama_host. Nama_host adalah mesin computer yang menjalankan server MySQL. $user adalah nama variable yang berisi dengan nama_user. Nama_user adalah user yang termuat dalam table user di dalam database mysql. $password adalah nama variable yang berisi password. Password diisi dengan password sesuai dengan user yang digunakan untuk login ker server database MySQL. $namadb adalah nama variable yang berisi nama_database. Nama database adalah database yang akan dikelola oleh PHP. $koneksi adalah variable yang berisi perintah query PHP mysql_connect. Mysql_connect adalah query PHP untuk lagin ke server MySQL, dengan parameter nama_host, nama_user, dan password. Mysql_connect_db adalah query PHP untuk mengakses database di dalam server MySQL, dengan parameter nama_database. $sql adalah variable yang berisi query select * from nama_tabel. Select * from nama_tabel adalah query untuk menampilkan seluruh data dalam table nama_tabel. $res adalah variable yang berisi query PHP mysql_query. Mysql_query digunakan untuk menjalankan perintah query melalui PHP, dengan partameter perintah query. Berikut contoh untuk menampilkan data user yang tersimpan di server MySQL. Sqluser.php <html> <head> <title>Data User</title> </head> <body> <h2>Data user di server MYSQL</h2> <hr> <?php $namahost="localhost";

Php dan MySQL 4

Embed Size (px)

Citation preview

Page 1: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

39

Aplikasi Web dengan PHP dan MySQL Perpaduan antara web programming dan database akan memberikan kesan yang lebih menarik dan interaktif terhadap keberadaan web kita. Demikian pula kemampuan PHP dalam menangani berbagai jenis database, membuat PHP menjadi dipercaya oleh kalangan programmer web untuk membangun aplikasi web yang interaktif. Saat ini PHP mampu berkomunikasi dan mengelola dengan database seperti PostgreSQL dan MySQL. Pada bahasan ini kita akan terfokus pada pengelolaan database MySQL saja. Sintaks PHP untuk berkomunikasi dengan database MySQL adalah:

<?php $host=”nama_host”; $user=”nama_user”; $password=”password”; $namadb=”nama_database”; $koneksi=mysql_connect($host,$user,$password); mysql_connect_db($namadb) $sql=”select * from nama_tabel” $res=mysql_query($sql); ?>

Penjelasan dari script di atas adalah: $host adalah nama variable yang berisi nama_host. Nama_host adalah mesin computer yang menjalankan server MySQL. $user adalah nama variable yang berisi dengan nama_user. Nama_user adalah user yang termuat dalam table user di dalam database mysql. $password adalah nama variable yang berisi password. Password diisi dengan password sesuai dengan user yang digunakan untuk login ker server database MySQL. $namadb adalah nama variable yang berisi nama_database. Nama database adalah database yang akan dikelola oleh PHP. $koneksi adalah variable yang berisi perintah query PHP mysql_connect. Mysql_connect adalah query PHP untuk lagin ke server MySQL, dengan parameter nama_host, nama_user, dan password. Mysql_connect_db adalah query PHP untuk mengakses database di dalam server MySQL, dengan parameter nama_database. $sql adalah variable yang berisi query select * from nama_tabel. Select * from nama_tabel adalah query untuk menampilkan seluruh data dalam table nama_tabel. $res adalah variable yang berisi query PHP mysql_query. Mysql_query digunakan untuk menjalankan perintah query melalui PHP, dengan partameter perintah query. Berikut contoh untuk menampilkan data user yang tersimpan di server MySQL. Sqluser.php

<html> <head> <title>Data User</title> </head> <body> <h2>Data user di server MYSQL</h2> <hr> <?php $namahost="localhost";

Page 2: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

40

$namauser="skomtek"; $password="skomtek"; $namadb="mysql"; if (!$koneksi=mysql_connect($hostname,$namauser,$password)) { echo mysql_error(); return 0; } if (!$dbh=mysql_select_db($namadb)) { echo mysql_error(); return 0; } $sql="select host,user,password from user"; if (!$res=mysql_query($sql)) { echo mysql_error(); return 0; } ?> <table width=80% cesllspacing=2 cellpadding=2 border=1> <tr> <th align=center width=20%>Nama Host</th> <th align=center width=30%>Nama User</th> <th align=center width=30%>password</th> </tr> <?php while ($data=mysql_fetch_row($res)) { echo "<tr>"; echo "<td align=left width=20%>".$data[0]."</td>"; echo "<td align=left width=30%>".$data[1]."</td>"; echo "<td align=left width=20%>".$data[2]."</td>"; echo "</tr>"; } ?> </table> <hr> </body> </html>

Page 3: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

41

Hasil dari script di atas adalah….

Contoh lain pengelolaan database melalui PHP…. query.php

<html> <head> <title>Mengelola Database</title> </head> <body> <?php $hostname="websnap"; $username="skomtek"; $password="skomtek"; ?> <form action="mysql_test.php" method=post> Silahkan pilih database untuk diquery<BR><BR> <select name=database size=1> <?php if (!$koneksi=mysql_connect($hostname,$username,$password)) { mysql_error(); return 0; } $db_table=mysql_list_dbs(); for ($i=0;$i < mysql_num_rows($db_table);$i++) { echo "<option>".mysql_tablename($db_table,$i); } ?> </select>

Page 4: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

42

<br> <br> Silahkan masukkan perintah SQL untuk dieksekusi: <br> <br> <textarea name="query" cols=50 rows=10></textarea> <br> <br> <input type=submit value="Eksekusi Perintah"> </form> </body> </html>

Hasil dari script adi atas…

mysql_test.php

<html> <head> <title>PHP SQL Code Tester</title> </head> <body> <?php $host="websnap"; $user="skomtek"; $password="skomtek";

Page 5: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

43

mysql_connect($host,$user,$password); mysql_select_db($database); $query=StripSlashes($query); $result=mysql_query($query); ?> Results of query <b><?php echo $query; ?></b><hr> <?php if ($result==0): echo "<b>Error ".mysql_errno().": ".mysql_error()."</br>"; elseif(mysql_num_rows($result)==0): echo "<b>Eksekusi query sukses !</b>"; else: ?> <table border=1> <thead> <tr> <?php for ($i=0;$i<mysql_num_fields($result);$i++) { echo "<th>".mysql_field_name($result,$i)."</th>"; } ?> </tr> </thead> <tbody> <?php for ($i=0;$i<mysql_num_rows($result);$i++) { echo "<tr>"; $row_array=mysql_fetch_row($result); for ($j=0;$j<mysql_num_fields($result);$j++) { echo "<td>".$row_array[$j]."</td>"; } echo "</tr>"; } ?> </tbody> </table> <?php endif ?> <hr><br> <form action="query.php" method=post> <input type=submit value="Ulangi !"> </form> </body> </html>

Page 6: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

44

Hasil dari script di atas adalah…

Dari contoh di atas, terlihat bahwa script PHP melibatkan fungsi-fungsi API MySQL. Fungsi-fungsi ini digunakan oleh MySQL untuk mengelola database. Fungsi-Fungsi API MySQL pada PHP dapat dilihat pada table berikut.

Nama Fungsi Kegunaan mysql_connect Digunakan untuk membuka hubungan atau koneksi ke database

server MySQL mysql_pconnect Sama dengan fungsi mysql_connect yang digunakan untuk

hubungan koneksi ke database server MySQL, namun sifatnya permanent atau tetap

mysql_close Digunakan untuk menutup hubungan koneksi dengan database server MySQL

mysql_create_db Membuat sebuah database baru pada database server MySQL mysql_drop_db Mendrop atau menghapus sebuah database pada server MySQL mysql_select_db Memilih sebuah database sebagai database aktif mysql_query Mengirim perintah SQL ke server MySQL untuk dieksekusi mysql_db_query Mengirim perintah SQL ke server MySQL pada database yang

aktif mysql_fetch_array Mengambil baris hasil sebagai array assosiatif mysql_result Menampilkan data hasil query mysql_fetch_row Menampilkan baris array satu persatu mysql_affected_row Menampilkan nomor baris akibat dari insert, update, dan delete

yang terakhir mysql_num_row Menampilkan nomor baris pada hasil. Perintah ini hanya bisa

digunakan pada select mysql_fetch_field Menampilkan informasi kolom dari hasil, dan menampilkannya

sebagai objek mysql_fetch_langths Menampilkan panjang beberapa field pada baris terakhir mysql_fetch_object Menampilkan baris hasil berupa objek mysql_fecth_name Menampilkan nama field tertentu

Page 7: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

45

mysql_list_fields Menampilkan daftar field mysql_num_fields Menampilkan nomor field mysql_field_seek Mencari field tertentu mysql_insert_id Mendapatkan id dari operasi insert sebelumnya mysql_data_seek Memindahkan hasil internal mysql_free_result Menampilkan memory yang bebas mysql_errno Menampilkan pesan error dari operasi yang dilakukan terakhir

kali mysql_error Menampilkan pesan error berupa teks dari operasi yang

dilakukan terakhir kali mysql_list_dbs Menampilkan daftar database yang ada pada database MySQL mysql_list_table Menapilkan daftar table yang ada pada database MySQL mysql_field_len Menampilkan panjang field tertentu mysql_field_table Mendapatkan nama field dari table tertentu mysql_table_name Mendapatkan nama table

Batching di PHP Batching merupakan cara menampilkan data secara parsial dengan rentang tertentu. Misalnya terdapat data yang memiliki jumlah record lebih dari 10000, jika seluruh record ditampilkan pada halaman web, maka akan menyulitkan kita untuk melihat data tersebut. Dengan batching, kita dapat menampilkan data secara parsial dengan rentang yang lebih kecil. Sementara untuk melihat data yang lain, dapat digunakan link untuk mengaksesnya. Sebagai contoh kita menggunakan search engine www.google.com. Hasil pencarian dari subjek yang kita isikan ternyata lebih dari 5000. Bayangkan seandainya seluruh hasil pencarian ditampilkan dalam satu halaman. Ternyata google.com menerapkan batching dari hasil pencarian dengan menampilkan perhalaman dengan rentang 10 record. Dan tersedia link untuk melihat 10 record lainnya pada halaman yang lain pula. Berikut perbedaan tanpa batching dengan menggunakan batching. Tanpa Batching: batch.php

<html> <head> <title>Menggunakan Batching</title> </head> <body> <h2>Menampilkan data tanpa bacthing</h2> <table border=1> <?php for ($dt=1;$dt<=15;$dt++) { if ($dt % 2) $warnabk="#FFFFFF"; else $warnabk="#AAFFFF"; ?> <tr bgcolor=<?php echo $warnabk; ?>>

Page 8: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

46

<td><?php echo $dt; ?></td> <td><?php echo "data ke ".$dt; ?></td> </tr> <?php } ?> </table> </body> </html>

Hasil dari script di atas adalah… Dengan Batching... batch2.php

<html> <head> <title>batching</title> </head> <body> <?php $maks=25; $sisa=$maks % 10; $div=($maks-$sisa)/10; if ($sisa > 0) $jkls=$div+1; if ($actkelas < 1) $actkelas=1; $awal=$actkelas*10-9; $akhir=$actkelas*10; if (($sisa>0) && ($akhir>$maks))

Page 9: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

47

$akhir=$maks; echo "Nilai kelas yang aktif ".$actkelas; ?> <table width=20% cellspacing=2 cellpadding=2 border=1> <?php for ($i=$awal;$i<=$akhir;$i++) { if ($i % 2) $wbk="#FFFFFF"; else $wbk="#FFDDFF"; echo "<tr bgcolor=".$wbk."><td>".$i."</td><td>Data ke ".$i."</dt></tr>"; } echo "<tr><td colspan=2>| "; for ($n=1;$n<=$jkls;$n++) echo "<a href=batch2.php?actkelas=$n>$n</a> | "; echo "</td></tr>"; ?> </table> </body> </html>

Hasil dari script di atas adalah... Batching dengan Query MySQL Contoh batching yang telah kita pelajarai di atas menggunakan sintaks PHP dengan melibatkan perintah looping. Seandainya data yang akan kita batch merupakan data dinamik, misalnya data pada sebuah tabel di dalam database MySQL, maka kita harus menggunakan query untuk melakukan batching pada data tersebut. Untuk melakukan bacthing data dari sebuah tabel menggunakan sintaks berikut: select * from nama_tabel limit mulai_data_ke jumlah_bacth; Sintak di atas hampir sama dengan cara menampilkan data dari suatu tabel. Perbedaannya terletak pada parameter mulai_data_ke dan jumlah_batch. Parameter pertama (mulai_data_ke) adalah pembatas dari data keberapa yang akan ditampilkan. Sedangkan jumlah_batch membatasi sampai berapa jumlah data akan ditampilkan dihitung dari mulai_data_ke. Misalnya mulai_data_ke bernilai 1 dan jumlah_batch bernilai 10, maka data akan ditampilkan mulai data ke 1 hingga ke 10. Sementara nilai mulai_data_ke

Page 10: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

48

dapat diprogram secara dinamis melalui PHP, sehingga proses penampilan data bisa menjadi lebih informatif. Berikut contoh batching dengan query MySQL. Tetapi sebelumnya, kita harus menyediakan sebuah database (dbbatch) dan tabel (tbbatch) dengan field-field sebagai berikut.

Field Type Null Key Default Extra no int(11) PRI NULL Auto_increment nilai int(11) YES NULL

Dari tabel di atas isikan data yang sesuai pada masing-masing field. Kemudian cobalah dengan script berikut. batchsql.php

<?php mysql_connect("localhost","skomtek","skomtek") or die ("gagal konek"); mysql_select_db("dbbatch") or die ("gagal select db"); $query="select * from tbbatch"; $result=mysql_query($query); $count=mysql_affected_rows(); $batch=10; $pages=ceil(($count/$batch)); if (!$page) $page=1; $start=($page-1)*$batch; $query="select * from tbbatch limit $start,$batch"; $result=mysql_query($query); if (!mysql_affected_rows()) die ("None"); echo "<table border=1><thead><tr><th>No.</th><th>Nilai</th></tr></thead>"; $_item=0; while ($line=mysql_fetch_array($result)) { if ($_item % 2) $bgcolor="#FFFFFF"; else $bgcolor="#AAFFFF"; $_item++; echo "<tr bgcolor=$bgcolor>"; echo "<td>$line[0]</td>"; echo "<td>$line[1]</td>"; echo "</tr>"; $start++; } if ($pages > 1) { echo "<tr>"; echo "<td colspan=2>| "; for ($i=1;$i<=$pages;$i++) {

Page 11: Php dan MySQL 4

PHP dan MySQL https://www.facebook.com/kursus.online.profesional | 2016

49

if ($i != ceil($start/$batch)) { echo "<a href=batchsql.php?page=$i>$i</a> | "; } else { echo "$i | "; } } echo "</td>"; echo "</tr>"; } echo "</table>"; ?>

Hasil dari script di atas adalah...