Menampilkan hasil query secara acak di PHP dan MySQL
August 20, 2011 3 Comments
Menampilkan hasil secara acak terkadang diperlukan untuk menampilkan sesuatu yang dinamis. Contohnya random post untuk menampilkan daftar artikel secara acak, jadi setiap kali page direfresh maka artikel yang di lihat user akan selalu berbeda. Caranya adalah dengan memberikan statemet “order by RAND()” pada statement SQL.
Berikut ini adalah contohnya :
- Buat Database dengan nama dbRandom, dan tabel tbl_post di MySQL dengan spesifikasi sebagai berikut :
post_bodyTEXTField Tipe Data Ukuran Keterangan post_id int 3 primary key, auto increment post_title Varchar 255 post_body TEXT Isikan Minimal 5 record !!!
- Kode MySQL :
SELECT post_title FROM tbl_post ORDER BY RAND() LIMIT 3
Maksud kode di atas adalah tampilkan hanya 3 post_title secara acak
- Implementasi di PHP :
koneksi.php<?php //Koneksi Ke Database dan Pilih Database $host="localhost"; //Host Server anda $user="root"; //Username Host Server $pass="suwandiz"; //Password Host Server $db="dbRandom"; // Nama Database $conn=mysql_connect($host,$user,$pass) or die("No Koneksi !!!"); //Koneksi ke MySQL jika tidak ada tampilkan no koneksi mysql_select_db("$db") or die("No Database !!!"); //Pilih Database jika tidak ada tampilkan No Database ?>
random_post.php
<?php include_once "koneksi.php"; //sertakan file koneksi.php untuk koneksi DB $query=mysql_query("SELECT post_id,post_title FROM tbl_post ORDER BY RAND() LIMIT 3") or die ("Invalid Query !!!"); while($hasil=mysql_fetch_array($query)) { //Tampilkan hasilnya secara acak dan link ke lihat_artikel.php berdasarkan id masng-masing artikel echo "<a href='lihat_artikel.php?id=".$hasil['post_id']."'>".$hasil['post_title']."</a> <br />"; } mysql_close($conn); //tutup koneksi ?>
lihat_artikel.php
<?php include_once "koneksi.php"; $id=$_GET['id']; //Menampung id yang dikirm dari random_post //Tampilkan id dan title dari artikel dimana id= id yang dikirmkan lewat link di random post $query=mysql_query("SELECT post_id,post_body FROM tbl_post WHERE post_id='$id'") or die ("Invalid Query !!!"); $hasil=mysql_fetch_array($query); echo "<p>".$hasil['post_body']."</p>"; //menampilkan post_body dalam paragraf mysql_close($conn); //tutup koneksi ?>
- Coba refresh beberapa kali random_post.php. Pasti artikel yang ditampilkan berbeda/acak kan ??? hehehe :)NB : cara ini pun bisa dipakai di bahasa pemrograman manapun teramasuk C# dan VB.Net walaupun codingnya berbeda tapi statement SQLnya sama.
Password : belajarbuatprogram.wordpress.com
Pingback: Membuat Virtual Host Apache di Windows « belajarbuatprogram
ka bisa tolong buatin script php untuk saat gambar di klik akan muncul keterangan gambar itu sendiri n halaman sebelumnya transaran di belakangnya. berhubung butuh cepat tolong dibuat secepatnya ya ka. thx ka
ok.. minggu ya