New Wallpaper OSX Keren"

Kalau mau yang bagus2 browsing aja kali ya di google images....:)

Office

Under Contruction

This Picture

Under Contruction

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Senin, 23 April 2012

Menyimpan Data & Menampilkan Beberapa Tabel

Pada saat melakukan normalisasi terhadap sebuah data, maka data akan dipecah kedalam beberapa tabel yang berelasi satu sama lainnya. Ada 3 relasi antar table sebagai berikut.
Relasi one-to-one merupakan relasi tabel yang jarang digunakan, relasi ini merelasikan satu data sebuah tabel dengan hanya satu data dari tabel lainnya. Indikasi untuk menggunakan tipe relasi ini adalah jika sebuah data memiliki sebuah subset data tertentu yang menerangkan lebih detil data itu, dimana subset data ini tidak dimiliki oleh data tersebut pada umumnya. Sebagai contoh, sebuah product secara umum memiliki id_produk, nama, harga, jenis. Namun pada tipe product tertentu seperti buku, memiliki data tambahan seperti penulis, penerbit, ISBN, tanggal_terbit. Satu data di tabel product hanya terhubung dengan satu data di tabel buku. Jika digambarkan seperti di bawah.
one-to-one1.png
Relasi one-to-many adalah relasi antar dua tabel dimana satu data (record) dari Tabel 1 bisa terhubung dengan beberapa record di Tabel 2. Misalnya penjualan memiliki id_penjualan, tanggal_jual, kasir. Setiap penjualan bisa terhubung dengan banyak item_penjualan. item_penjualan memiliki id_item,id_penjualan, id_produk, jumlah, harga_jual. Jika digambarkan seperti:
one-to-many.png
Relasi many-to-many merupakan relasi yang paling kompleks, karena diperlukan tabel lain untuk menghubungkan dua tabel data yang saling berkepentingan. Seperti halnya penjualan bisa terhubung (berkepentingan) dengan banyak product, dan product bisa terhubungan dengan banyak penjualan. Tabel penjualan dan product memiliki relasi banyak ke banyak yang dihubungkan oleh tabel item_penjualan. Contoh lain adalah dosen bisa memiliki banyak mahasiswa dan mahasiswa bisa memiliki banyak dosen. Relasi banyak ke banyak antara dosen dan mahasiswa memerlukan tabel lain, sebut saja tabel mahasiswa_dosen. Jika digambarkan seperti di bawah.
many-to-many.png
Seperti dijelaskan sebelumnya tidak ada cara khusus untuk menyimpan data ke beberapa tabel. Berikut adalah cara menyimpan data ke beberapa tabel berdasarkan tipe relasi tabel.
Disini akan diambil contoh seperti contoh di atas, menyimpan produk dengan tipe buku. Pertama buat html form dengan kode di bawah.

Simpan kode di atas dengan nama form.php, kemudian buat file simpan.php untuk menyimpan data ke tabel product dan tabel buku, dengan kode di bawah.
  1. }

Bisa dilihat kode di atas hampir sama dengan kode untuk menyimpan data ke satu tabel. Pada baris ke-2 dilakukan pengecekan apakah ada data yang dikirim atau tidak. Jika ada data yang dikirim, di baris ke-3 dan 4 dilakukan koneksi ke database. Kemudian pada baris ke-6 dan 7 menyimpan data ke tabel product. Selanjutnya dari ke ke-9 sampai 16 adalah untuk menyimpan data ke tabel buku.
Setiap tabel yang berelasi, tabel anak (dalam kasus ini tabel buku) memiliki sebuah foreign key, nilai foreign key ini diambil dari nilai referenced column -- primary key tabel induk (referenced table, tabel product dalam contoh ini). Pada contoh ini, kolom id_produk pada tabel buku adalah foreign key dan primary key tabel product (kolom id_produk) adalah referenced column. Nilai dari foreign key tidak boleh berisi nilai nilai yang tidak ada di reference colomn kecuali null.
Sekarang lihat kembali baris ke-9. Baris ke-9 sampai 12 adalah untuk mencari id_produk yang baru saja disimpan pada tabel product (baris ke-6 dan 7). Kenapa proses ini diperlukan? Karena nilai dari kolom id_produk tabel buku tidak boleh berisi nilai nilai selain nilai yang ada di kolom id_produk tabel product. Selanjutnya baris ke-14 sampai 16 adalah untuk menyimpan data ke tabel buku, dan kolom id_produk diisi dengan nilai yang diperoleh dari baris sebelumnya (baris ke-9 sampai 12).
Disini akan diberikan contoh menyimpan Album musik. Album musik yang memiliki beberapa lagu. Struktur tabel album dan lagu seperti:
album-lagu.jpg
Pertama buatlah form html berikut:

Kode diatas akan membentuk form seperti berikut:
album-form.jpg
Yang perlu diperhatikan adalah atribut name dari element form (baris ke-12 sampai 14) yang diberi nilai seperti no_track[0], judul_lagu[0], durasi[0]. Penamaan seperti itu bertujuan agar data dikirim ke server berupa array. Selanjut buatlah file simpan-album.php untuk menyimpan data ke database.
  1. }
  2. }

Baris ke-1 sampai 15 sama dengan cara yang dilakukan untuk menyimpan data ke tabel berelasi satu ke satu. Pertama membuka koneksi ke database (baris ke-7 dan 8 ). Kemudian menyimpan data ke tabel album (baris ke-10 dan 11). Selanjutnya mencari id album yang baru saja disimpan (baris ke-13 s/d 15). Langkah terakhir (baris ke-17 s/d 21) adalah melakukan perulangan dan menyimpan satu persatu data ke tabel lagu, serta id_album diisi dengan nilai yang diperoleh sebelumnya di baris ke-13 s/d 15.
Menyimpan data ke tabel yang berelasi banyak ke banyak merupakan bagian yang paling kompleks. Menyimpan datanya tidak bisa seperti cara cara sebelumnya, yang hanya sekali langkah. Menyimpan data ke tabel yang berelasi banyak ke banyak paling sedikit melewati 3 langkah. Agar lebih jelas akan dicontohkan relasi antara mahasiswa dan mata_kuliah yang direlasikan oleh tabel mahasiswa_mk, sebagai berikut:
mahasiswa-154.png
Langkah Pertama: Menyimpan Data Mahasiswa.
Untuk menyimpan data mahasiswa gunakan kode php di bawah. Kode di bawah sama seperti yang digunakan untuk menyimpan data ke satu tabel.

Simpan kode di atas dengan nama file mahasiswa.phpLangkah Kedua: Menyimpan Data Mata Kuliah
Menyimpan data mata kuliah sama seperti menyimpan data mahasiswa. Gunakan kode di bawah dan simpan dengan nama mata_kuliah.php.

Langkah Ketiga: Menyimpan Data Mata Kuliah Seorang Mahasiswa
Untuk mempermudah proses menyimpan data Mata Kuliah Seorang Mahasiswa, diperlukan kode untuk menampilkan daftar mahasiswa di bawah.

Simpan kode di atas dengan nama list-mahasiswa.php. Kode tersebut berfungsi untuk menampilkan daftar mahasiswa dan membuat link berjudul "Tambah Mata Kuliah" ke halaman mahasiswa_mk.php. Halaman mahasiswa_mk.php digunakan untuk menyimpan data mata kuliah seorang mahasiswa.
  1. }

Baris ke-6 dan 7 kode di atas adalah untuk mencari data mahasiswa yang akan di tambahkan mata kuliahnya. Baris ke-8 menampilkan nama mahasiswa. Baris ke-13 dan 14 adalah membuat sql query untuk mencari mata kuliah yang belum ditambahkan ke mahasiswa bersangkutan. Untuk mempermudah di baris 13 dan 14 menggunakan subquery. Selanjutnya baris 15 s/d 20 untuk menampilkan checkbox mata kuliah yang belum dimiliki oleh mahasiswa bersangkutan.
Langkah berikutnya adalah membuat file simpan_mahasiswa_mk.php untuk menyimpan data mata kuliah mahasiswa.
  1. }

Kode di atas hampir sama dengan cara menyimpan data ke tabel berelasi satu ke banyak.
Menampilkan Data Dari Beberapa Tabel

Membuat Galeri Foto Dengan PHP

Sebelum membuat galeri foto, anda harus bisa mengupload file dengan php. Secara singkat galeri foto yang akan dibuat adalah sebagai berikut. Pertama pengguna memilih gambar yang akan diupload dan memasukkan deskripsi gambar. Kemudian dengan php, gambar akan diupload ke sebuah folder. Nama file dan deskripsi gambar akan disimpan ke database.

Membuat Database Galeri Foto

Buatlah sebuah database dengan nama "galeri", dan buat sebuah tabel "foto" dengan struktur seperti:
Nama Field Tipe Data Keterangan
id int(11) Primary Key, auto increment
nama_file varchar(255)
deskripsi varchar(255)
atau gunakan sql query di bawah
  1. CREATE TABLE `foto` (
  2. `id` INT(11) NOT NULL AUTO_INCREMENT,
  3. `nama_file` VARCHAR(255) NOT NULL,
  4. `deskripsi` VARCHAR(255) ,
  5. PRIMARY KEY (`id`)
  6. )
  7. ENGINE = MyISAM;

Membuat Form dan Struktur Folder
Pertama buatlah sebuah folder dengan nama "galeri" di document root web server. Biasanya folder "htdocs" atau "public_html". Di dalam folder galeri buat folder "upload" dan tiga file kosong seperti gambar.
folder.png
Buka file form.html dan buatlah html form dengan kode berikut.
  1. <html>
  2. <head>
  3. <title>New Picture</title>
  4. </head>
  5. <body>
  6. <form name="form1" action="save-gallery.php" method="post" enctype="multipart/form-data">
  7. File: <input type="file" name="file" id="file"/><br/>
  8. Deskripsi: <textarea name="deskripsi" id="deskripsi"></textarea><br/>
  9. <input type="submit" name="save" value="Upload"/>
  10. </form>
  11. </body>
  12. </html>

kemudian simpan file tersebut.
Mengupload dan Menyimpan Gambar ke Database
Langkah selanjutnya adalah mengupload gambar ke folder "upload" dan menyimpan deskripsi dan nama file ke tabel "foto". Buka file save-gallery.php dan gunakan kode php di bawah untuk menyimpan gambar.
  1. <?php
  2. //koneksi ke database
  3. $conn = mysql_connect('localhost', 'userdb', 'password');
  4. mysql_select_db('galeri');
  5. //upload file
  6. if(!empty($_FILES) && $_FILES['file']['size'] > 0 && $_FILES['file']['error'] == 0){
  7. $fileName = $_FILES['file']['name'];
  8. $move = move_uploaded_file($_FILES['file']['tmp_name'], 'upload/'.$fileName);
  9. if($move){
  10. //simpan deskripsi dan nama file ke database
  11. $sql = "insert into foto (nama_file, deskripsi) values
  12. ('$fileName', '".$_POST['deskripsi']."')";
  13. mysql_query($sql);
  14. header("Location: gallery.php");
  15. }
  16. }

Pertama tama di baris ke 3-4 membuka koneksi ke database. Di baris ke-6 dilakukan pengecekan apakah file sudah terupload dan ukurannya lebih besar dari nol dan tidak terjadi error. Baris ke-8 memindahkan file yang telah terupload, dari temporary folder ke folder "upload" yang telah dibuat sebelumnya. Baris selanjutnya mengecek jika proses pemindahan file berhasil. Jika berhasil deskripsi dan nama file disimpan ke tabel 'foto'.
Menampilkan Gambar
Selanjunya, menampilkan gambar yang telah disimpan. Buka file gallery.php dan isi dengan kode php di bawah.
  1. <html>
  2. <head>
  3. <title>Gallery</title>
  4. </head>
  5. <body>
  6. <?php
  7. //koneksi ke database
  8. $conn = mysql_connect('localhost', 'userdb', 'password');
  9. mysql_select_db('galeri');
  10. //membaca data dari database
  11. $result = mysql_query("select * from foto");
  12. //menampilkan foto
  13. ?>
  14. <table>
  15. <tr>
  16. <?php
  17. $i = 1;
  18. while($row = mysql_fetch_array($result)){
  19. ?>
  20. <td>
  21. <a href="upload/<?php echo $row['nama_file'];?>">
  22. <img src="upload/<?php echo $row['nama_file'];?>" alt="" width="200" border="0"/>
  23. </a>
  24. <br/><?php echo $row['deskripsi'];?>
  25. </td>
  26. <?php
  27. if($i % 3 == 0){
  28. echo '</tr><tr>';
  29. }
  30. $i++;
  31. }
  32. ?>
  33. </tr>
  34. </table>
  35. </body>
  36. </html>

Yang perlu di perhatikan adalah di baris ke-22. Untuk menampilkan gambar digunakan tag <img/>. Nama nama gambar yang ditampilkan diambil dari database - echo $row['nama_file']. Karena gambar diupload ke folder "upload" maka attribute src diisi dengan nilai seperti ini "upload/<?php echo $row['nama_file'];?>".
Membuat Zoom
Sebuah galeri foto perlu sebuah fasilitas zoom. Untuk itu diperlukan jQuery dan Fancybox. Silahkan download Fancybox di websitenya (versi 1.3.4 saat tutorial ini dibuat). Setelah selesai, ekstrak file zip yang didownload dari website fancybox. Kemudian copy file jquery-1.4.3.min.js dan folder fancybox dari hasil ekstrakan dan paste di folder 'galeri' yang telah dibuat sebelumnya.
Selanjutnya buka kembali file gallery.php dan ubah menjadi seperti berikut.
  1. <html>
  2. <head>
  3. <title>Gallery</title>
  4. <!--menambahkan jquery-->
  5. <script type="text/javascript" src="jquery-1.4.3.min.js"></script>
  6. <!--menambahkan fancybox-->
  7. <script type="text/javascript" src="fancybox/jquery.fancybox-1.3.4.pack.js"></script>
  8. <!--menambahkan css fancybox-->
  9. <link href="fancybox/jquery.fancybox-1.3.4.css" type="text/css" rel="stylesheet"/>
  10. <script type="text/javascript">
  11. $(document).ready(function(){
  12. $(".fancy").fancybox();
  13. });
  14. </script>
  15. </head>
  16. <body>
  17. <?php
  18. //koneksi ke database
  19. $conn = mysql_connect('localhost', 'userdb', 'password');
  20. mysql_select_db('galeri');
  21. //membaca data dari database
  22. $result = mysql_query("select * from foto");
  23. //menampilkan foto
  24. ?>
  25. <table>
  26. <tr>
  27. <?php
  28. $i = 1;
  29. while($row = mysql_fetch_array($result)){
  30. ?>
  31. <td>
  32. <a href="upload/<?php echo $row['nama_file'];?>" class="fancy">
  33. <img src="upload/<?php echo $row['nama_file'];?>" alt="" width="200" border="0"/>
  34. </a>
  35. <br/><?php echo $row['deskripsi'];?>
  36. </td>
  37. <?php
  38. if($i % 3 == 0){
  39. echo '</tr><tr>';
  40. }
  41. $i++;
  42. }
  43. ?>
  44. </tr>
  45. </table>
  46. </body>
  47. </html>

Delete / Hapus Gambar
Tidak tertutup kemungkinan ada kesalahan pada saat mengupload file. Untuk itu diperlukan fungsi untuk menghapus file. Pertama ubah skrip untuk menampilkan gambar (file gallery.php), tambahkan kode di bawah setelah baris ke-24.
  1. <br/>
  2. <a href="delete-gallery.php?id=<?php echo $row['id'];?>" onclick="return confirm('Anda yakin?');">Delete</a>

Kemudian buat satu file lagi dengan nama delete-gallery.php dan isi dengan skrip untuk delete gambar di bawah.
  1. <?php
  2. //file delete-gallery.php
  3. //koneksi ke database
  4. $conn = mysql_connect('localhost', 'userdb', 'password');
  5. mysql_select_db('galeri');
  6. if(isset($_GET['id'])){
  7. $id = (int) $_GET['id'];
  8. $sql = "select * from foto where id='$id'";
  9. $result = mysql_query($sql);
  10. if(mysql_num_rows($result) > 0 ){
  11. $data = mysql_fetch_array($result);
  12. //delete file
  13. @unlink('upload/'.$data['nama_file']);
  14. //delete data di database
  15. mysql_query("delete from foto where id='$id'");
  16. }
  17. }
  18. header("Location: gallery.php");

Edit Gambar
Selain manghapus data juga diperlukan kemampuan untuk mengedit gambar. Pertama ubah skrip untuk menampilkan gambar (file gallery.php), ubah pada baris yang sama seperti cara membuat hapus gambar (tambahkan kode di bawah setelah baris ke-24.) seperti:
  1. <br/>
  2. <a href="edit-gallery.php?id=<?php echo $row['id'];?>">Edit</a>

Kemudian buat sebuah file dengan nama edit-gallery.php dan isi dengan skrip php di bawah untuk melakukan edit gambar.
  1. <?php
  2. //file edit-gallery.php
  3. //koneksi ke database
  4. $conn = mysql_connect('localhost', 'userdb', 'password');
  5. mysql_select_db('galeri');
  6. if($_POST){ //jika tombol update ditekan dan data terkirim ke server
  7. //bentuk sql query untuk update
  8. $update = "update foto set deskripsi='".$_POST['deskripsi']."' ";
  9. if($_FILES['file']['size'] > 0 && $_FILES['file']['error'] == 0){ //update gambar hanya jika user memilih file baru
  10. $move = move_uploaded_file($_FILES['file']['tmp_name'], "upload/".$_FILES['file']['name']);
  11. if($move){
  12. $update .= ", nama_file='".$_FILES['file']['name']."'";
  13. }
  14. }
  15. $update .= " where id='".$_POST['id']."'";
  16. mysql_query($update); //update data ke database
  17. header("Location: gallery.php");
  18. }
  19. ?>
  20. <html>
  21. <head>
  22. <title>Edit Picture</title>
  23. </head>
  24. <body>
  25. <form name="form1" action="" method="post" enctype="multipart/form-data">
  26. <?php
  27. $sql = "select * from foto where id='".intval($_GET['id'])."'";
  28. ?>
  29. <!-- menampilkan gambar sebelumnya -->
  30. <img src="upload/<?php echo $data['nama_file'];?>" alt="" width="200"/><br/>
  31. File: <input type="file" name="file" id="file"/><br/>
  32. <!-- menampilkan deskripsi -->
  33. Deskripsi: <textarea name="deskripsi" id="deskripsi"><?php echo $data['deskripsi'];?></textarea><br/>
  34. <input type="submit" name="save" value="Update"/>
  35. <input type="hidden" name="id" value="<?php echo $data['id'];?>"/>
  36. </form>
  37. </body>
  38. </html>

Sekarang buka browser dan buka halaman http://localhost/galeri/form.html. Upload beberapa file dan lihat hasilnya.
Selamat Mencoba. sumber myphptutorials.com