22 Comments

Teknik Paging halaman PHP



Paging adalah teknik saat menampilkan data kedalam halaman halaman yang berbeda. Teknik ini digunakan jika data yang ada sangat banyak sehingga tidak mungkin tampil dalam satu halaman. Alasan yang lain, dengan paging, loading halaman lebih cepat karena php hanya meminta sebagian data saja. Contoh paging yang anda pakai tiap hari(namun jarang diperhatikan) adalah hasil pencarian Google.

Untuk memberikan gambaran yang lebih real tentang paging, kita akan membahas teknik paging dengan cara yang mudah dan sederhana. Dalam tutorial kali ini, saya akan menampilkan data negara didunia. Data SQL saya ambil dari http://27.org/isocountrylist/.

Langkah utama membuat paging halaman di PHP adalah sebagai berikut:
1. Membuat script koneksi
2. Menentukan total data yang akan ditampilkan pada tiap halaman dan menentukan posisi halaman
3. Membuat skrip SQL sesuai dengan posisi halaman yang diminta dan menampilkannya
4. Menampilkan nomor paging di bagian bawah tabel.

1. Membuat script Koneksi

<?php
	
	define('db_host','localhost');
	define('db_user','root'); //usename mysql
	define('db_pass',''); //password mysql jika ada
       //nama database dinama tabel country berada
	define('db_name','candralabdb');

	mysql_connect(db_host,db_user,db_pass);
	mysql_select_db(db_name);
	
?>

2. Menentukan total data yang akan ditampilkan pada tiap halaman dan menentukan posisi halaman
Script selanjutnya dari langkah 2 sampai langkah empat ada disatu file dengan nama country.php


//2). Menentukan total data yang akan 
//=== ditampilkan pada tiap halaman dan menentukan posisi halaman

//variabel dan kode awal untuk menentukan posisi halaman saat ini
//dipakai untuk melimit quiery
	$batas=10; //satu halaman menampilkan 10 baris
$halaman=$_GET['halaman'];
$posisi=null;
if(empty($halaman)){
	$posisi=0;
	$halaman=1;
}else{
	$posisi=($halaman-1)* $batas;
}

//3). melakukan query dan menampilkan data
//query data menggunakan limit $posisi dan batas
$query="select * from country limit $posisi,$batas ";

$result=mysql_query($query) or die(mysql_error());
$no=1;

while($rows=mysql_fetch_object($result)){
?>

			<tr>
				<td><?php echo $posisi+$no
				?></td>
				<td><?php	echo $rows -> iso;?></td>
				<td><?php	echo $rows -> name;?></td>
				<td><?php	echo $rows -> printable_name;?></td>
			</tr>
			<?php		$no++;
			}?>
		</table>
		<br>
		<?php		
		
// 4). code untuk Menampilkan nomor paging di bagian bawah tabel.
			$sql_paging = mysql_query("select iso  from country");
			$jmldata = mysql_num_rows($sql_paging);
			$jumlah_halaman = ceil($jmldata / $batas);

			echo "Halaman :";
			for($i = 1; $i <= $jumlah_halaman; $i++)
				if($i != $halaman) {
					echo "<a href=country.php?halaman=$i>$i</a>|";
				} else {
					echo "<b>$i</b>|";
				}
			mysql_close();?>
		<br>
		Jumlah data :<?php echo $jmldata;?>

Hasil dari program diatas akan tampak seperti gambar dibawah ini

hasil Tampilan Paging menggunakan PHP

Jika anda tertarik mencoba, lihat demonya disini atau silahkan download kodenya disini

Tags: ,

22 thought on “Teknik Paging halaman PHP”

  1. Irfan says:

    Min kenapa punya saya kalo di klik ke halaman lainnya di pagination ini selalu muncul halaman home?

  2. kak dolop says:

    mas kalau mau membatasi nmor pagingny gimana ya?

  3. aliciafree says:

    Om, mau tanya cara membatasi nomor yang dibawah bagaimana?
    contohnya ane mau buat seperti ini :
    [1][2][3][4][5]…[10.][101][101][102]

  4. anggun says:

    it’s work..thanks :)

  5. tri budi says:

    matur suwun mas..

  6. lsaputra says:

    gan,

    masih ada error ini :
    Notice: Undefined index: halaman in C:\xampp\htdocs\pagingphpmysql\country.php on line 16

    mohon pencerahannya

    1. tambahkan baris error_reporting(0); di baris kedua file index.php

  7. Agus M. S says:

    Mas Chandra,

    Bila page nya kenapa kalau di klik halaman selanjutnya tidak mau tampil datanya

  8. giripranata says:

    terimakasih mas,, saya barusan download,, mau saya pelajari

  9. Anonymous says:

    klo pake prev dan next gimana gan?

  10. Anonymous says:

    kurang di atas

  11. ienjoy says:

    pak, demo-nya kok ga diedit di mysql_connect(); jadi error tuh.. :D

    1. iya..kemarin pindahan server, sebagian scriptnya tidak terupdate

  12. jumadi madi says:

    Mantap gan Tutorial pagingnya…

    Sukses Full….

  13. Medi says:

    Bagus gan,
    Kalau mau buat backgorund nomor halamanya gimana gan?

  14. bang candra, pas di country.php ada Notice: Undefined index: halaman in C:\xampp\htdocs\pagingphpmysql\country.php on line 16, mohon bantuannya bang…

  15. Adam says:

    ada tipsnya supaya yg muncul seperti ini?

    1 …5 6 7 8 9 … 15

    1. ienjoy says:

      pakai if else mungkin bisa

  16. MAbtap gan.. langsung di unduh untuk dicoba.. kalo ada eror saya akan kembali kesini :mrgreen:

    1. Candra Adi Putra says:

      silahkan, semoga sukses

  17. Candra Adi Putra says:

    oh iya, udah aq benerin kodenya, itu cuman ganti baris
    echo $no
    menjadi echo $posisi+$no;

  18. netter says:

    itu nomor dihalaman 2 dan selanjutnya kok sama ya? 1 – 10 terus.. :P
    oiya klu halaman pagingnya jadi ky gini gimana gan kodingnya

    <>

Tinggalkan Komentar plz!