J A M K E E M P A T Script PHP dan MySQL l l l l l l Membuat Koneksi ke Server Menyeleksi Database Mengakses Query Menampilkan Hasil Query Latihan Jam Keempat Soal Jam Keempat
Membuat Koneksi ke Server Script PHP dan MySQL Untuk melakukan koneksi ke server, Anda perlu menciptakan file khusus yang berfungsi sebagai penghubung antara script dan database. Menggunakan file khusus ini apabila terdapat perubahan user atau password Anda hanya perlu mengubah satu file saja. Praktek Untuk membuka koneksi ke server Anda memerlukan alamat server, user name, dan password. Perhatikan langkah di bawah ini. 1 Untuk mengetahui user yang telah terdaftar, caranya aktifkan jendela browser Anda. Kemudian masuk ke dalam halaman phpmyadmin dengan user firdaus password maxikom. 2 Selanjutnya klik link Hak Akses, maka akan tampil user yang telah terdaftar. Gambar 4.1 Menampilkan daftar hak akses Catatan : Password pada masing-masing user tidak ditampilkan demi keamanan data. Untuk praktek selanjutnya Penulis akan menggunakan user firdaus dengan password maxikom atau dapat pula Anda tentukan sendiri. 79
Jam Keempat 3 Setelah Anda mengetahui user yang telah terdaftar, sekarang aktifkan program Dreamweaver Anda dan pilihlah jenis halaman PHP. 4 Ketiklah kode di bawah ini untuk melakukan koneksi ke dalam server yang aktif. <?php $host = "localhost"; $user = "firdaus"; $pass = "maxikom"; $koneksi = mysql_connect($host, $user, $pass);?> if (!$koneksi) { echo "Koneksi ke database gagal"; }; Keterangan : Perintah di atas akan mendeklarasikan variabel yang menampilkan host, user, dan password. Kemudian pada variabel koneksi dibuat perintah untuk melakukan koneksi ke dalam database. Jika koneksi ke database gagal, maka akan ditampilkan pesan bahwa koneksi ke database gagal. Gambar 4.2 Perintah yang akan menghubungkan ke database 5 Simpanlah file tersebut dengan nama koneksi.php di dalam folder C:\AppServ\www. 80
Script PHP dan MySQL Menyeleksi Database Setelah data terhubung ke dalam server, Anda diizinkan untuk menghubungkan database yang akan digunakan. Perintah untuk menyeleksi database adalah mysql_select_db(). Praktek Berikut ini Anda akan melakukan seleksi pada database db_coba yang telah Anda buat sebelumnya. 1 Pastikan jendela program Dreamweaver Anda masih aktif. Buatlah halaman PHP baru. 2 Perhatikan Gambar 4.3. Ketiklah perintah di bawah ini untuk menyeleksi database db_coba yang telah Anda buat sebelumnya. <?php include ("koneksi.php"); $database = "db_coba";?> $selek_db = mysql_select_db ($database); if (!$selek_db) { die ("Database tidak terseleksi"); } Keterangan : Perintah include akan memanggil file koneksi.php yang telah Anda buat untuk melakukan koneksi ke server. Variabel database diisi dengan nama database yang akan dipanggil. Setelah itu dilakukan perintah seleksi dan apabila penyeleksian database tidak berhasil, maka akan ditampilkan pesan database tidak terseleksi. 3 Setelah itu simpanlah file yang telah Anda buat dengan nama seleksi_db.php ke dalam folder C:\AppServ\www. 81
Jam Keempat Gambar 4.3 Perintah untuk menyeleksi database Mengakses Query Untuk mengeksekusi query pada database yang aktif, Anda dapat menggunakan fungsi mysql_query(). Fungsi ini menggunakan parameter yang telah Anda tentukan di dalam variabel. Praktek Setelah koneksi ke server dan database terhubung, berikut ini Anda akan membuat query untuk membuat dan mengisi tabel buku menggunakan perintah query yang terdapat di dalam PHP. 1 Pastikan jendela program Dreamweaver Anda masih aktif. Buatlah halaman PHP baru. 2 Setelah Anda menambahkan halaman baru, selanjutnya ketiklah perintah di bawah ini. <?php include ("koneksi.php"); include ("seleksi_db.php"); $tabel = "CREATE TABLE tb_buku ( id_buku int not null primary key auto_increment, judul varchar (200) not null, hal int not null )"; 82
?> $isi = "INSERT INTO tb_buku VALUES (1,'7JBI Visual Basic 6',200), (2,'SQL Server dgn Visual Basic 6',200)"; $buat_tabel = mysql_query ($tabel); if (!$buat_tabel){ echo "Proses pembuatan tabel buku gagal!!!"; } else { $isi_tabel = mysql_query ($isi); }; Script PHP dan MySQL Keterangan : Perintah Include akan menghubungkan dan menyeleksi database dengan memanggil file koneksi.php dan seleksi_db.php yang telah Anda buat sebelumnya. Variabel $tabel diisi dengan perintah untuk membuat tabel, sedangkan variabel $isi dimasukkan perintah untuk mengisi dua data ke dalam tabel. Kemudian variabel $buat_tabel diisi dengan perintah untuk meng-eksekusi query pembuatan tabel. Apabila proses pembuatan tabel pada variabel $buat_tabel gagal, maka akan ditampilkan pesan bahwa pembuatan tabel gagal dan apabila sebaliknya, dibuat variabel $isi_tabel yang diisi dengan perintah untuk melakukan eksekusi pemasukkan data ke dalam tabel yang telah dibuat. Gambar 4.4 Perintah query pembuatan dan pengisian tabel 83
Jam Keempat 3 Simpanlah file yang Anda buat dengan nama buat_tabel.php di dalam folder C:\AppServ\www. 4 Untuk melihat hasilnya, aktifkan jendela browser Anda. Kemudian ketiklah alamat localhost/buat_tabel.php dan apabila tidak muncul pesan seperti gambar di bawah, maka proses pembuatan tabel berhasil. Gambar 4.5 Pesan apabila pembuatan tabel gagal 5 Selanjutnya, coba Anda aktifkan halaman phpmyadmin dan pilihlah database db_coba, maka akan terdapat tbl baru yaitu tabel tb_buku. 1: Aktifkan database db_coba. Gambar 4.6 2: Klik ikon Browse untuk melihat data di dalam tabel. Hasil pembuatan tabel buku 6 Untuk melihat hasil perintah peng-inputan data, klik ikon browse pada gambar di atas. Hasil input data dapat Anda lihat pada Gambar 4.7. 84
Script PHP dan MySQL Gambar 4.7 Hasil peng-inputan dua data buku Menampilkan Hasil Query Untuk menampilkan seluruh data di dalam tabel, Anda dapat menggunakan perintah mysql_fetch_row() atau mysql_fetch_array(). Perint ah mysql_fetch_row() akan mendapatkan hasil query dalam bentuk array sampai nilai parameter menjadi FALSE. Sedangkan perintah mysql_fetch_array() hampir sama dengan perintah mysql_fetch_row() tetapi data yang dihasilkan merupakan data associative array. Praktek a. mysql_fetch_row Gambar 4.8 Menampilkan data dalam bentuk baris 1 Bukalah program Dreamweaver Anda dan pilihlah jenis halaman PHP. 2 Kemudian ketiklah perintah di bawah ini untuk menampilkan semua data ke dalam array. 85
Jam Keempat <?php include ("koneksi.php"); include ("seleksi_db.php"); $seleksi = "SELECT * FROM tb_buku"; $hasil_seleksi = mysql_query ($seleksi);?> if (!$hasil_seleksi){ echo "Proses penyeleksian tabel buku gagal!!!"; } else { while ($baris = mysql_fetch_row ($hasil_seleksi)) { echo "ID Buku : ".$baris[0]."<br>"; echo "Julul Buku : ".$baris[1]."<br>"; echo "Halaman : ".$baris[2]."<br><br>"; }; }; Keterangan : Perintah Include akan menghubungkan dan menyeleksi database dengan memanggil file koneksi.php dan seleksi_db.php yang telah Anda buat sebelumnya. Variabel $seleksi diisi dengan perintah untuk menyeleksi seluruh data di dalam tabel buku, sedangkan variabel $hasil_seleksi diisi dengan perintah untuk meng-eksekusi query penyeleksian tabel. Apabila proses penyeleksian gagal, maka akan ditampilkan pesan bahwa proses penyeleksian tabel gagal dan apabila berhasil dilakukan perintah pengulangan WHILE sebanyak baris yang terdapat di dalam tabel buku. Gambar 4.9 Perintah menampilkan data mysql_fetch_row 86
Script PHP dan MySQL 3 Simpanlah file yang telah Anda buat dengan nama fetch_row.php di dalam folder C:\AppServ\www. 4 Untuk melihat hasilnya, aktifkan jendela browser dan ketiklah localhost/fetch_row.php di dalam kotak Address. Hasilnya dapat Anda lihat pada Gambar 4.8 sebelumnya. b. mysql_fetch_array Gambar 4.10 Menampilkan data ke dalam tabel 1 Pastikan program Dreamweaver Anda masih aktif. Buatlah sebuah halaman PHP baru. 2 Kemudian ketiklah perintah di bawah ini untuk menampilkan semua data ke dalam tabel. Lihat Gambar 4.11. <html> <title>menampilkan data ke dalam tabel</title> <body> <table border="1"> <tr> <th>kode Buku</th> <th>judul Buku</th> <th>halaman</th> </tr> <?php include ("koneksi.php"); 87
Jam Keempat include ("seleksi_db.php"); $seleksi = "SELECT * FROM tb_buku"; $hasil_seleksi = mysql_query ($seleksi); if (!$hasil_seleksi){ echo "Proses penyeleksian tabel buku gagal!!!"; } else { while ($baris = mysql_fetch_array ($hasil_seleksi)) { echo "<tr> <td>$baris[id_buku]</td> <td>$baris[judul]</td> <td>$baris[hal]</td> <tr>"; }; };?> </table> </body> </html> Keterangan : Pada bagian body, dibuat perintah pembuatan tabel dengan tag <th> untuk memasukkan judul masing-masing kolom. Perintah Include akan menghubungkan dan menyeleksi database dengan memanggil file koneksi.php dan seleksi_db.php yang telah Anda buat sebelumnya. Variabel $seleksi diisi dengan perintah untuk menyeleksi seluruh data di dalam tabel buku, sedangkan variabel $hasil_seleksi diisi dengan perintah untuk meng-eksekusi query penyeleksian tabel. Apabila proses penyeleksian gagal, maka akan ditampilkan pesan bahwa proses penyeleksian tabel gagal dan apabila berhasil dilakukan perintah pengulangan WHILE sebanyak baris yang terdapat di dalam tabel buku. Kemudian, hasil dari perintah mysql_fetch _array ditampilkan ke dalam tabel. Penulisan nama array harus sesuai dengan nama field yang terdapat di dalam tabel buku. 3 Simpanlah file yang Anda buat dengan nama fetch_array.php di dalam C:\AppServ\www. 4 Untuk melihat hasilnya, aktifkan jendela browser Anda dan ketiklah alamat localhost/fetch_array.php di dalam kotak Address. Hasilnya akan tampak seperti Gambar 4.10. 88
Script PHP dan MySQL Gambar 4.11 Perintah menampilkan data ke dalam tabel Latihan Jam Keempat Pada latihan jam keempat ini Anda akan membuat halaman peng-inputan buku tamu dan halaman untuk menampilkan hasil peng-inputan data. Lihat Gambar 4.12. Praktek 1 Sebelumnya, pindahkan file lat-jam4.php, frm_tamu.php, dan view_tamu1.php yang terdapat di dalam folder File PHP pada CD sertaan buku ini ke dalam folder C:\AppServ\www. 2 Kemudian, bukalah jendela program Dreamweaver Anda dan aktifkan halaman PHP. 3 Selanjutnya ketiklah kode yang terdapat di bawah Gambar 4.12 untuk melakukan koneksi ke database. 89
Jam Keempat Gambar 4.12 Latihan Jam Keempat <?php $host = "localhost"; $user = "firdaus"; $pass = "maxikom"; $database = "db_coba";?> mysql_connect($host, $user, $pass) or die ("Koneksi ke database gagal!!!"); mysql_select_db($database); Gambar 4.13 Perintah untuk melakukan koneksi ke database 90
Script PHP dan MySQL 4 Kemudian simpanlah file tersebut dengan nama config.php di dalam folder C:\AppServ\www. 5 Setelah itu tambahkan sebuah halaman PHP baru dan masukkan perintah di bawah ini untuk melakukan penyimpanan data tamu ke dalam tabel. <?php $x = header("location:view_tamu1.php"); include ("config.php"); if ($proses) { $cek_mail = "^([._a-z0-9-]+[._a-z0-9-]*)@ (([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3}))$";?> } if(empty($nama) empty($komentar)!eregi($cek_mail, $email)) { echo "Nama dan Komentar harus diisi, Email harus valid"; } else { $sql = "INSERT INTO tb_tamu VALUES(null,'$nama','$email','$komentar')"; $simpan = mysql_query ($sql); if(!$simpan){ $buat_tabel = "CREATE TABLE tb_tamu ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, nama VARCHAR(30) NOT NULL, email VARCHAR(60) NOT NULL, komentar TEXT NOT NULL )"; mysql_query($buat_tabel); mysql_query($sql); } echo $x; } Keterangan : Perintah Include akan memanggil file config.php untuk menghubungkan ke database. 91
Jam Keempat Apabila tombol proses di-klik, maka perintah pada baris berikutnya akan dieksekusi. Selanjutnya membuat variabel untuk mengecek penulisan e-mail; apabila pengisian nama, komentar, dan e-mail kosong maka akan ditampilkan pesan. Dan apabila sebaliknya data telah Anda tulis dengan benar, maka akan dibuat perintah peng-inputan data yang disimpan di dalam variabel $simpan. Kemudian apabila terjadi error pada saat peng-inputan data dikarenakan tabel belum tersedia, maka akan dijalankan perintah untuk membuat tabel tamu. Apabila tabel telah tersedia dan data telah tersimpan dengan baik, maka akan ditampilkan halaman yang akan menampilkan seluruh data tamu. Gambar 4.14 Perintah penyimpanan data 6 Simpanlah file tersebut dengan nama tamu.php di dalam folder C:\AppServ\www. 7 Bukalah file frm_tamu.php dan lat-jam4.php yang telah Anda pindahkan sebelumnya. Selanjutnya aktifkan tab frm_tamu.php dan ubah mode tampilan menjadi Design. 8 Perhatikan Gambar 4.15. Klik kanan pada area garis putus-putus, kemudian klik Action. 92
Script PHP dan MySQL 2: Klik kanan di area garis 1: Aktifkan tab frm_tamu.php dengan mode Design 3: Klik Action Gambar 4.15 Menampilkan kotak dialog Select File 9 Perhatikan Gambar 4.16. Di dalam kotak dialog Select File, aktifkan folder www. Pilih file tamu.php dan klik tombol OK. 1: Aktifkan folder www 2: Pilih file tamu.php 3: Klik OK Gambar 4.16 Menghubungkan ke file tamu.php 10 Simpan kembali file dengan menekan tombol shortcut CTRL+S pada keyboard Anda. Kemudian aktifkan tab file lat-jam4.php dengan mode Design. 11 Perhatikan Gambar 4.17. Klik kanan pada kolom kedua yang terdapat di dalam file, kemudian klik Quick Tag Editor. 93
Jam Keempat 1: Aktifkan tab lat-jam4.php dengan mode Design 2: Klik kanan di dalam area kolom kedua 3: Klik Quick Tag Editor Gambar 4.17 Mengaktifkan area Insert HTML 12 Pada tampilan Inset HTML, ketiklah perintah <?php include ( frm_tamu.php );?> untuk menghubungkan ke f ile frm_tamu.php. Kemudian klik sembarang untuk mengaktifkan perintah. Gambar 4.18 Area Insert HTML 13 Simpan kembali file dengan menekan tombol shortcut CTRL+S pada keyboard Anda. 14 Buatlah kembali sebuah halaman PHP baru dan ketiklah perintah berikut untuk menampilkan seluruh komentar di dalam tabel. <?php include("config.php"); 94
Script PHP dan MySQL $numresult = mysql_query("select * FROM tb_tamu"); $jumlah = mysql_num_rows($numresult); $limit = 3; echo "<p class=\"style1 style2\">isi Buku Tamu klik di <a href=\"lat-jam4.php\">sini</a></p>"; if (empty($page)) { $page=1; } $totalpage = ceil($jumlah/$limit); if ($page!=1) { $prev = $page-1; echo "<a href=\"view_tamu1.php?page=$prev\" class=\"style1 style2\">«</a> "; } for ($a=1;$a<=$totalpage;$a++) { if ($a==$page) { echo("<b class=\"line1 style1 style2\">[$a]</b> "); } else { echo " <a href=\"view_tamu1.php?page=$a\" class=\"style1 style3\">$a</a> "; } } if ($page!=$totalpage) { $next = $page + 1; echo " <a href=\"view_tamu1.php?page=$next\" class=\"style1 style2\">»</a> "; } $star = ($page - 1) * $limit; $sql = mysql_query("select * FROM tb_tamu ORDER BY id DESC LIMIT $star,$limit");?> while($data = mysql_fetch_array($sql)) { <style type="text/css"> <!--.style1 {font-family: Arial, Helvetica, sans-serif}.style2 {font-size: 12px}.style3 {font-size: 10px} --> </style> 95
Jam Keempat <table> <tr> <td width="11%" class="style1 style2">nama</td> <td width="1%" class="style1 style2"> : </td> <td><span class="style1 style2"> <?=$data[nama]?> </span></td> </tr> <tr> <td class="style1 style2">email</td> <td class="style1 style2"> : </td> <td><span class="style1 style2"> <?=$data[email]?> </span></td> </tr> <tr> <td valign="top" class="style1 style2">komentar</td> <td valign="top" class="style1 style2"> : </td> <td><span class="style1 style2"> <?=$data[komentar]?> </span></td> </tr> <tr><td colspan="3"> </td></tr> </table> <?php }?> Keterangan : Menghubungkan file database menggunakan perintah Include ( config.php ). Variabel $numresult akan diisi dengan penyeleksian seluruh record pada tabel tamu. Sedangkan variabel $jumlah akan menampilkan nilai jumlah record yang terseleksi. Variabel $limit diisi dengan nilai data yang akan ditampilkan pada masing-masing halaman. Nilai ini dapat Anda tentukan sesuai dengan kebutuhan. Selanjutnya menampilkan teks yang terhubung dengan link ke alamat latjam4.php untuk melakukan input komentar. Apabila jumlah halaman kosong, maka variabel $page diberi nilai default 1. Variabel $totalpage diisi dengan perintah yang akan membulatkan ke atas nilai yang dihasilkan antara variabel $jumlah dibagi variabel $limit. Contoh: 3,4 menjadi 4. Perintah if ($page!= 1) akan menentukkan nilai PREVIOUS apabila page yang aktif tidak sama dengan 1. Perintah for ($a=1;$a<=$totalpage;$a++) akan melakukan proses pembagian halaman. Sedangkan perintah if ($page!=$totalpage) akan menentukkan nilai NEXT apabila page yang aktif tidak sama dengan total halaman. 96
Script PHP dan MySQL Variabel $star akan diisi dengan nilai awal record yang akan ditampilkan dalam tiap halaman. Kemudian dilakukan penyeleksian seluruh record pada tabel tamu dengan parameter LIMIT yang kemudian dimasukkan ke dalam perintah pengulangan WHILE dengan variabel $data untuk mengambil nilai array di dalam tabel. Selanjutnya dibuat perintah CSS untuk membuat style1, style2, dan style3 dan kemudian data yang telah diperoleh dari variabel $data ditampilkan dalam bentuk tabel. Gambar 4.19 Perintah untuk menampilkan seluruh data 15 Setelah Anda memasukkan semua kode, kemudian simpanlah file tersebut dengan nama view_tamu.php di dalam f older C:\AppServ\www. 16 Selanjutnya coba Anda buka file view_tamu1.php yang telah Anda pindahkan sebelumnya. 97
Jam Keempat 17 Ubahlah tampilan view dengan mode Design dan lakukan langkah yang sama seperti langkah ke-11 sampai langkah ke-13, tetapi pada langkah ke-12 ketiklah perintah <?php include ("view_tamu.php");?> pada area Insert HTML. 18 Untuk mencoba hasilnya, aktifkanlah jendela browser Anda. Ketiklah alamat localhost/lat-jam4.php pada kotak input Address, maka tampilan awal akan seperti Gambar 4.12 sebelumnya. 19 Lakukanlah peng-inputan data, setelah Anda melakukan penginputan data maka akan tampil halaman yang akan menampilkan seluruh data komentar tamu. Gambar 4.20 Halaman view seluruh komentar tamu 98
Script PHP dan MySQL Soal Jam Keempat Pada soal jam keempat, Anda diminta untuk membuat halaman penginputan alamat dan halaman yang akan menampilkan seluruh data alamat. Gambar 4.21 Soal Jam Keempat Ketentuan Soal: l l Buatlah tabel dengan nama tb_alamat dengan struktur seperti di bawah ini: CREATE TABLE `tb_alamat` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `nama` VARCHAR( 100 ) NOT NULL, `alamat` VARCHAR( 255 ) NOT NULL, `tlp` VARCHAR( 25 ) NOT NULL, `email` VARCHAR( 150 ) NOT NULL, `catatan` TEXT NOT NULL ); Pada saat tombol Tambahkan di-klik, pastikan seluruh kotak teks terisi dan penulisan alamat email benar. Perhatikan Gambar 4.20. Kemudian tampilkan kotak pesan bahwa data telah tersimpan. 99
Jam Keempat l Selanjutnya buatlah halaman untuk menampilkan semua data alamat, seperti Gambar 4.21. l Gambar 4.22 Halaman menampilkan seluruh data alamat Untuk lebih jelasnya Anda dapat melihat keterangan di dalam video tutorial pada CD sertaan buku ini. 100