Wednesday, November 19, 2014

Menampilkan Record Yang Berbeda Dengan SELECT DISTINCT


Untuk mencari dan menampilkan record yang berbeda pada tabel MySQL kita menggunakan perintah query SELECT DISTINCT . Perintah SELECT DISTINCT hanya akan mengambil nilai yang berbeda dari tabel, sehingga jika ada nilai yang sama tetap akan ditampilkan sekali saja.

Seperti diketahui bahwa jika sebuah kolom tidak diset dengan PRIMARY KEY maka database akan memperbolehkan terjadinya record yang sama. Dan terkadang kita membutuhkan data secara unik diantara data-data yang sama tersebut misalnya saat ingin mengetahui pengunjung blog secara unik dalam satu waktu tertentu.

Cara penulisan perintah SELECT DISTINCT

SELECT DISTINCT nama_kolom1,nama_kolom2 FROM nama_tabel;

Perintah SELECT DISTINCT juga bisa dikombinasi dengan fungsi COUNT untuk menghitung jumlah record unik dalam tabel MySQL, seperti berikut ini:
SELECT COUNT(DISTINCT nama_kolom1) FROM nama_tabel;

Contoh script PHP menggunakan perintah SELECT DISTINCT

Pada contoh berikut kita akan mengambil nilai yang sama dari tabel pengunjung yang memiliki dua field yaitu nama_kunjungan dan waktu_kunjungan berikut ini :

Nama Pengunjung Waktu Kunjungan
Agus 2014-11-18
Budi 2014-11-18
Candra 2014-11-18
Dewi 2014-11-18
Agus 2014-11-19
Dewi 2014-11-19
Untuk mengambil nama pengunjung secara unik dari tabel diatas dibuat script PHP berikut ini :
 <?php    
 $dbHost = "localhost";    
 $dbUser = "root";    
 $dbPass = "123";    
 $dbName = "MySQLIDB2";    

 // membuat koneksi mysql    
 $conn = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);    

 // mengecek koneksi mysql    
 if ($conn->connect_error) die("Koneksi Gagal: " . $conn->connect_error);    
 else echo "Koneksi Database ".$dbName." Berhasil ...<br/><br/>";     

 //membuat query membaca record dari tabel User     
 $query="SELECT DISTINCT nama_pengunjung FROM Pengunjung";     

 //menjalankan query     
 if ($conn->query($query)) {     
 $result=$conn->query($query);     
 } else die ("Error menjalankan query". mysqli_error());     

 //mengecek record kosong    
 if ($result->num_rows > 0) {    

  // menampilkan data   
  echo "Nama Pengunjung yang kembali= <br/>";    
  while($row = $result->fetch_assoc()) {    
    echo $row["nama_pengunjung"] . "<br/>";     
    }    
 }    
 else echo "Tidak ada Record didalam tabel";     

 // menutup koneksi mysql    
 $conn->close();    
 ?>   

Referensi :

1 komentar:

  1. Gan klo mau menampilkan isi record yang sama gimana. misal isi record tuh cuma dua, lunas dan bayar. nah saya cuma mau menampilkan isi record yang lunas saja.
    Mohon dibalas :)

    ReplyDelete