Nusansifor

Nusantara Sistem Informasi

PHP Class Pagination alias Pengaturan Data per Halaman

Screenshot sebagai berikut:

Berikut php class pagination, pada script disertakan juga keterangan komentar pada file script.

<?php
class JinPagination {
	// fungsi pengaturan/option $this->blabla = "value nya blabla"
	function setOption($field, $value) {
		$this->$field = $value;
	}
	// fungsi paginasi generate array berupa total jumlah halaman, pagination, data dan posisi start 
	// berguna untuk diatur secara fleksible terutama untuk berbasis menggunakan template
	function build() {
		// SETUP
		$tabel = $this->tabel;
		$where = $this->where;
		$limit = $this->limit;
		$order = $this->order;
		$page = $this->page;
 
		// SETUP OPTIONAL
		if(!isset($this->web_url_page)) { $web_url_page = "?page="; } else { $web_url_page = $this->web_url_page; }
		if(!isset($this->adjacents)) { $adjacents = "3"; } else { $adjacents = $this->adjacents; }
		if(!isset($this->txt_prev)) { $txt_prev = "&laquo; prev"; } else { $txt_prev = $this->txt_prev; }
		if(!isset($this->txt_next)) { $txt_next = "next &raquo;"; } else { $txt_next = $this->txt_next; }
		if(!isset($this->txt_titik)) { $txt_titik = "..."; } else { $txt_titik = $this->txt_titik; }
 
		$query = mysql_query("SELECT * FROM ".$tabel." ".$where."");
		//$total_pages = mysql_fetch_array(mysql_query($query));
		//$total_pages = $total_pages['num'];
		$total_pages = mysql_num_rows($query);
 
		if($page) {
			$start = ($page - 1) * $limit; 			//first item to display on this page
		} else {
			$start = 0;								//if no page var is given, set start to 0
		}
		// Get data.
		$query = "SELECT * FROM ".$tabel." ".$where." ".$order." LIMIT ".$start.", ".$limit."";
		$hasil = mysql_query($query);
 
		/* Setup page vars for display. */
		if ($page == 0) $page = 1;					//if no page var is given, default to 1.
		$prev = $page - 1;							//previous page is page - 1
		$next = $page + 1;							//next page is page + 1
		$lastpage = ceil($total_pages/$limit);		//lastpage is = total pages / items per page, rounded up.
		$lpm1 = $lastpage - 1;						//last page minus 1
 
		/* 
			Now we apply our rules and draw the pagination object. 
			We're actually saving the code to a variable in case we want to draw it more than once.
		*/
		$pagination = "";
		if($lastpage > 1) {
			$pagination .= "<div class=\"pagination\">";
			//previous button
			if ($page > 1) {
				$pagination .= "<a href=\"".$web_url_page.$prev."".$extra_href."\">" . $txt_prev . "</a>";
			} else {
				$pagination .= "<span class=\"disabled\">" . $txt_prev . "</span>";	
			}
			//pages
			if ($lastpage < 7 + ($adjacents * 2)) {
				//not enough pages to bother breaking it up
				for ($counter = 1; $counter <= $lastpage; $counter++) {
					if ($counter == $page) {
						$pagination .= "<span class=\"current\">".$counter."</span>";
					} else {
						$pagination .= "<a href=\"".$web_url_page.$counter."".$extra_href."\">".$counter."</a>";
					}
				}
			}
			elseif($lastpage > 5 + ($adjacents * 2)) {
				//enough pages to hide some
				if($page < 1 + ($adjacents * 2)) {
					//close to beginning; only hide later pages
					for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) {
						if ($counter == $page) {
							$pagination .= "<span class=\"current\">".$counter."</span>";
						} else {
							$pagination .= "<a href=\"".$web_url_page.$counter."".$extra_href."\">$counter</a>";
						}
					}
					$pagination .= $txt_titik;
					$pagination .= "<a href=\"".$web_url_page.$lpm1."".$extra_href."\">".$lpm1."</a>";
					$pagination .= "<a href=\"".$web_url_page.$lastpage."".$extra_href."\">".$lastpage."</a>";		
				}
				elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) {
					//in middle; hide some front and some back
					$pagination .= "<a href=\"".$web_url_page."1".$extra_href."\">1</a>";
					$pagination .= "<a href=\"".$web_url_page."2".$extra_href."\">2</a>";
					$pagination .= $txt_titik;
					for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) {
						if ($counter == $page) {
							$pagination .= "<span class=\"current\">".$counter."</span>";
						} else {
							$pagination .= "<a href=\"".$web_url_page.$counter."".$extra_href."\">".$counter."</a>";
						}
					}
					$pagination .= $txt_titik;
					$pagination .= "<a href=\"".$web_url_page.$lpm1."".$extra_href."\">".$lpm1."</a>";
					$pagination .= "<a href=\"".$web_url_page.$lastpage."".$extra_href."\">".$lastpage."</a>";
				} else {
					//close to end; only hide early pages
					$pagination .= "<a href=\"".$web_url_page."1".$extra_href."\">1</a>";
					$pagination .= "<a href=\"".$web_url_page."2".$extra_href."\">2</a>";
					$pagination .= $txt_titik;
					for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) {
						if ($counter == $page) {
							$pagination .= "<span class=\"current\">".$counter."</span>";
						} else {
							$pagination .= "<a href=\"".$web_url_page.$counter."".$extra_href."\">".$counter."</a>";
						}
					}
				}
			}
 
			//next button
			if ($page < $counter - 1) {
				$pagination .= "<a href=\"".$web_url_page.$next."".$extra_href."\">" . $txt_next . "</a>";
			} else {
				$pagination .= "<span class=\"disabled\">" . $txt_next . "</span>";
				$pagination .= "</div>\n";
			}
		}
		// hasil dari fungsi build()
		return array(	"pagination" 	=> $pagination, 
						"total" 		=> number_format($total_pages),
						"hasil"			=> $hasil,
						"start"			=> $start
					);
	}
}
 
 
// Penggunaan Class
// koneksi DB
// asumsikan kita sudah terkoneksi dengan database MySQL
 
// Setting CSS
$isi = "";
$isi .= "
<style>
/* optional */
body {
	background-color:#fff;
	font-size:11px;
	font-family:Verdana;
	margin:0;
	padding:0;
	color:#555555;
}
/* END - optional */
 
/* PAGINATION */
div.pagination {
	padding: 3px 0 3px 0;
	margin: 0;
}
 
div.pagination a {
	padding: 2px 5px 2px 5px;
	margin: 2px;
	border: 1px solid #AAAADD;
 
	text-decoration: none; /* no underline */
	color: #000099;
}
div.pagination a:hover, div.pagination a:active {
	border: 1px solid #000099;
 
	color: #000;
}
div.pagination span.current {
	padding: 2px 5px 2px 5px;
	margin: 2px;
		border: 1px solid #000099;
 
		font-weight: bold;
		background-color: #000099;
		color: #FFF;
	}
	div.pagination span.disabled {
		padding: 2px 5px 2px 5px;
		margin: 2px;
		border: 1px solid #EEE;
 
		color: #DDD;
	}
/* END - PAGINATION */
</style>
";
// optional CSS display
echo $isi;
// bikin object
$hal = new JinPagination;
// setup paginasi
$hal->setOption("tabel", "jaw_airport"); // nama tabel database
$hal->setOption("where", "WHERE `cek_aktif`='1'"); // where kondisi, kosongkan jika tidak memakai WHERE
$hal->setOption("limit", "10"); // LIMIT tampilan per halaman
$hal->setOption("order", "ORDER BY `code` DESC"); // urutan, kosongkan jika tidak memakai urutan
$hal->setOption("page", $_REQUEST["page"]); // setup untuk ambil variable angka halaman (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)
$hal->setOption("web_url_page", "?page="); // setup alamat url (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)
// optional setup
$hal->setOption("adjacents", "5"); // tampil berapa angka ke kanan dan ke kiri nya, jika kita diposisi tengah halaman
$hal->setOption("txt_prev", "&laquo; sebelumnya"); // mengubah text "prev" menjadi "sebelumnya"
$hal->setOption("txt_next", "berikutnya &raquo;"); // mengubah text "next" menjadi "berikutnya"
// generate hasil pagination
$hal_array = $hal->build();
// setup penomoran
$no = $hal_array["start"] + 1;
// tampilkan
echo "<h1>Demo Data Pagination</h1>";
echo $hal_array["pagination"]; // tampilkan pagination diatas
echo "<br /><br />";
// data
while($data = mysql_fetch_array($hal_array["hasil"])){
	echo $no . ". " . $data['code'] . " - ".$data['nama']." <br>";
	$no++;
}
echo "<br />";
echo "total: " . $hal_array["total"]; // tampilkan total data
echo $hal_array["pagination"]; // tampilkan pagination dibawah
?>

Demo lainnya: klik disini
Download file contoh script komplit nya:

  class.pagination.rar (2.5 KiB, 3,159 hits, Updated: 14 April 2011)

semoga bermanfaat… :mrgreen:

Tambahan:

untuk pagination Style, dapat Anda pilih disini: some-styles-for-your-pagination

, ,

38 Comments

  • rlyna says:

    Using Safari Safari 525.27.1 on Mac OS X Mac OS X 10.5.6

    bermanfaat kok bang :mrgreen:

    tp kalo aq bikin itu lepas dari db. jadi cuman perlu parameter total record sama current page aja, ntar tinggal build jadi navigation.

    ide itu hasil aq nyontek di code orang sih :twisted:

    tp yang ini pake class, lebih yahud :oops:

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.0.5 on Windows Windows XP

    @rlyna, makasih komentarnya :wink:
    owhh iya bisa juga ya diwaktu bulid nya gak perlu pake db ya…
    total record sama current page aja ya.. wah iya ya bener juga…

    ntar saya bikin class pagination yg versi tanpa berkutat langsung dgn db ya… jadi pengaturan db nya di waktu eksekusi di controller (istilah framework nya, halah..)

    eh eh, tapi ntar di controller mesti query2 dulu dong yah untuk mendapatkan jumlah totalnya, bukannya malah jadi tambah panjang code2 pengulangannya? kan kalau yg ini, tinggal setting nama tabel, where, limit, order aja.. atau gimana yg lebih efisien dan fleksibel? yah sementara saya pakai yg ini dulu aja…

    Thumb up 0 Thumb down 0

  • Ino says:

    Using Mozilla Firefox Mozilla Firefox 3.0.5 on Windows Windows XP

    thx :D

    Thumb up 0 Thumb down 0

  • Andre says:

    Using Mozilla Firefox Mozilla Firefox 3.0.5 on Windows Windows XP

    mantap :) :razz:

    Thumb up 0 Thumb down 0

  • ian says:

    Using Mozilla Firefox Mozilla Firefox 3.0.7 on Windows Windows XP

    ini script OK juga. tapi saya punya kendala nich wkt pakenya buat kasus saya.
    mau nanya nich, klo untuk WHERE nya supaya bisa dirubah-rubah gimana ya? soalnya page 1 nya data keluar tapi pas page 2 datanya blank, pas dilihat ternyata isi WHERE nya kosong, jadi gmn caranya?… saya ambil nilai untuk WHERE nya dari list/menu. thanks banget.

    Thumb up 0 Thumb down 0

  • joko says:

    Using Mozilla Firefox Mozilla Firefox 3.0.10 on Windows Windows XP

    mas, untuk nampilin misal: hal 1 dari 10 halaman gimana mas?
    trims

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.0.10 on Windows Windows XP

    @ian
    di bagian ini bisa diubah WHERE nya terserah kita.
    bisa juga ambil dari variabel menu yg ian maksudkan.

    $hal->setOption("where", "WHERE `cek_aktif`='1'"); // where kondisi, kosongkan jika tidak memakai WHERE

    @joko
    bagian akhir dari fungsi bulid() diubah seperti ini:

    	// hasil dari fungsi build()
    		return array(	"pagination" 	=> $pagination, 
    						"total" 		=> number_format($total_pages),
    						"hasil"			=> $hasil,
    						"start"			=> $start,
    						"lastpage"		=> $lastpage
    					);

    lalu dibagian yg ingin kita tampilkan seperti ini:

    echo "halaman ".$_REQUEST["page"]." dari " . $hal_array["lastpage"] . "halaman"; // tampilkan total halaman

    Thumb up 0 Thumb down 0

  • joko says:

    Using Google Chrome Google Chrome 2.0.172.28 on Windows Windows XP

    jadi tinggal nambahin “lastpage” aja ya mas, gak ada bagian lain-lain yang dirubah kan

    trims

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.0.10 on Windows Windows XP

    @joko
    iya mas joko, silahkan dicoba sesuai komentar saya yg di atas, yaitu nambahin hasil array nya (lastpage).
    semoga membantu dan terimakasih atas masukannya.

    Thumb up 0 Thumb down 0

  • Adi Suwarso says:

    Using Opera Opera 9.63 on Windows Windows Vista

    implementasinya kalo ke MS SQL Server yang connect via ODBC gimana ya?

    sudah diotak-atik malah jadi bingung :)

    diantos waleranna,,, nuhun

    Thumb up 0 Thumb down 0

  • Adi Suwarso says:

    Using Opera Opera 9.63 on Windows Windows Vista

    maaf ketinggalan,,, koneksi odbc saya seperti ini:

    $server = "alamat";
    $user = "user";
    $password = "password";
    $database = "data_base";

    $connection = odbc_connect("DRIVER=SQL Server;SERVER=".$server.";UID=".$user.";PWD=".$password.";DATABASE=".$database.";Address=".$server.",1433","","");

    $query = "SELECT * FROM tabel WHERE status='kondisi' ORDER BY status ASC";

    $opentables = odbc_exec($connection, $query);

    mudah-mudahan ada yang bisa bantu, terutama mas Jawaad.
    terima kasih.

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.0.11 on Windows Windows XP

    @Adi Suwarso, untuk database MS SQL, silahkan dicoba seperti ini:
    dibaris yg

    		// Get data.
    		$query = "SELECT * FROM ".$tabel." ".$where." ".$order." LIMIT ".$start.", ".$limit."";

    menjadi:

    		// Get data.
    		$query = "SELECT TOP ".$limit." * FROM (SELECT TOP ".$start." FROM ".$tabel."  ".$order.") ".$order."";

    terus semua perintah mysql_query nya diubah menjadi odbc_exec.
    semoga bisa membantu..
    cmiiw

    Thumb up 0 Thumb down 0

  • joko says:

    Using Mozilla Firefox Mozilla Firefox 3.0.8 on SuSE Linux SuSE Linux

    mas saya sudah berhasil untuk pagingnya, tapi untuk seting adjacents gak berfungsi , malah kalo gak di kaish adjacent paging nya berhasil, salah saya di mana mas? trims

    Thumb up 0 Thumb down 0

  • joko says:

    Using Mozilla Firefox Mozilla Firefox 3.0.8 on SuSE Linux SuSE Linux

    Mas saya udah berhasil pake pagingnya, tapi untuk seting adjacent gak bisa, malah kalo gak dikaih seting adjacent paging bejalan dengan baik, salah saya dimana ya mas, trims

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.0.11 on Windows Windows XP

    @Joko, kenapa gak bisa? saya dan teman lain dah coba bisa.. kalau aneh, default yg di class nya diubah aja mas adjcent nya..
    dibagian ini:

    if(!isset($this->adjacents)) { $adjacents = "3"; } else { $adjacents = $this->adjacents; }

    angka 3 nya diubah aja sesuai yg mas Joko inginkan.
    Adjacents ini keliatan jika halaman kita banyak.. misalnya yg ada di demo ini:
    http://www.nusansifor.com/demo/pagination/?test=pagination&page=1977
    di link tersebut adjacents nya 2, jadi jika di posisi halaman 1977, maka yg tampil di sebelah kanan dan kiri nya hanya 2 halaman sebelumnya dan 2 halaman setelahnya, yaitu halaman 1975, 1976 (kiri) dan 1978, 1979 (kanan).

    Thumb up 0 Thumb down 0

  • wie says:

    Using Internet Explorer Internet Explorer 7.0 on Windows Windows XP

    mas,,saya menginginkan file class nya terpisah..bagai mana ya..jadi class pagination ini berbeda file dengan penggunaanya…
    kan contoh yang ini di gabung..saya udah nyoba tapi gak berhasil..tolong ya mas..trims

    Thumb up 0 Thumb down 0

  • wie says:

    Using Internet Explorer Internet Explorer 7.0 on Windows Windows XP

    sudah bisa mas..tapi sekarang bingung,, kalo saya menggunakan searching,,paging itu ga berfungsi…jadi harus gimana ya??thanks…

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.0.12 on Windows Windows XP

    @wie, file php pagination class ini memang di-design supaya bisa jalan dengan file terpisah.. dan class memang biasanya jg seperti itu sifatnya, supaya tidak boros copy-paste script.

    Logika untuk searching, pada penggunaan setup, sesuaikan pada baris berikut:

    $hal->setOption("where", "WHERE `cek_aktif`='1'"); // where kondisi, kosongkan jika tidak memakai WHERE
     
    $hal->setOption("web_url_page", "?page="); // setup alamat url (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)

    sesuaikan WHERE kondisi nya sesuai dengan search, dan alamat url web juga sesuaikan dengan variabel search nya… gunakan variabel dari $_GET, dan method searchnya gunakan GET jangan POST.
    contoh pencarian kata “test”:
    blabla.com/?search=test
    maka setupnya sbb:

    $hal->setOption("where", "WHERE `nama` LIKE '%".$_GET['search']."%'"); // where kondisi, kosongkan jika tidak memakai WHERE, sesuaikan dengan kebutuhan.
     
    $hal->setOption("web_url_page", "?search=".$_GET['search']."&page="); // setup alamat url (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)

    silahkan dicoba, semoga membantu.

    Thumb up 0 Thumb down 0


  • Using Mozilla Firefox Mozilla Firefox 3.0.7 on Windows Windows XP

    Thx bos, saya sudah coba, saya gabung dengan script dasar punya saya (maksudnya yang saya pelajari dari tutorial para master) dan berjalan dengan baik.

    Thumb up 0 Thumb down 0

  • Adi Suwarso says:

    Using Opera Opera 9.63 on Windows Windows Vista

    Mas Jawaad, scriptnya jalan bagus dan cukup mudah dimengerti sehingga bisa disesuaikan dengan kebutuhan untuk tampilannya di web kita,
    hanya saya kesulitan untuk mengcustomize link2 halamannya, tidak seperti paginator.class yang pernah saya pakai (yang memang untuk pemula seperti saya sangat susah dimengerti).
    sebagai contoh :
    members.php?perintah=anggota&sorting=tanggal
    file members.php (induk) meng-include file anggota.php yang berfungsi menghubungi database dan memformat halaman serta memanggil JinPagination.class.php
    maka link2 halaman yang dihasilkan menjadi (contoh):
    members.php?page=8
    padahal kondisi link yang diinginkan:
    members.php?perintah=anggota&page=8&sorting=tanggal
    sehingga anggota.php bisa diinclude kembali oleh members.php dengan parameter setelahnya.
    mudah-mudahan kalimat saya tidak membingungkan :) dan mudah-mudahan mas Jawaad bisa bantu implementasikan ;)
    hatur tengkyu… (maaf kepanjangan)

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.5.4 on Windows Windows XP

    @Mas Adi Suwarso,
    PHP class Pagination yg ini di set supaya bisa fleksibel, jadi tinggal atur set-up an kita saja mas.

    lihat bagian ini mas di contoh script:

    $hal->setOption("web_url_page", "?page="); // setup alamat url (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)

    lalu sesuaikan dengan kebutuhan:
    misalkan kasus seperti mas, kita asumsikan begini:

    $var_tambahan = '';
    if(isset($_GET['perintah'])) {
    	$var_tambahan .= "perintah=".$_GET['perintah']."&";
    }
    if(isset($_GET['sorting'])) {
    	$var_tambahan .= "sorting=".$_GET['sorting']."&";
    }
     
    $hal->setOption("web_url_page", "?".$var_tambahan."page=");

    Btw, mas Suwarso kasusnya mirip dengan yg wie utarakan diatas. Yaitu setup bagian web_url_page dan WHERE.

    Terimakasih atas komentarnya :mrgreen:

    Thumb up 0 Thumb down 0

  • Adi Suwarso says:

    Using Opera Opera 9.80 on Windows Windows Vista

    :( kehilangan data setelah memodifikasi script ini,,, pantang menyerah, baca ulang :)

    mas Jawaad, untuk kasus terakhir belum saya coba praktekan, tapi kepikiran sesuatu sehingga saya tambahkan beberapa baris pada script tersebut, mohon commentnya betul atau salah ;)
    eh hanya 2 barus ya :)

    ######original line
    // SETUP
    $tabel = $this->tabel;
    $where = $this->where;
    $limit = $this->limit;
    $order = $this->order;
    $page = $this->page;

    ######modified to
    // SETUP
    $tabel = $this->tabel;
    $where = $this->where;
    $selection = $this->selection; //opsi kalau tidak mau semua field di select
    $limit = $this->limit;
    $order = $this->order;
    $page = $this->page;

    ######original line
    // bikin object
    $hal = new JinPagination;
    // setup paginasi
    $hal->setOption(“tabel”, “barang”); // nama tabel database
    $hal->setOption(“selection”, “kodebrg, hargajual, hargajual1″); // field yang akan di select beri “*” kalau mau semua field di select
    $hal->setOption(“where”, “WHERE hargajual > 90000″); // where kondisi, kosongkan jika tidak memakai WHERE
    $hal->setOption(“limit”, “15″); // LIMIT tampilan per halaman
    $hal->setOption(“order”, “ORDER BY hargajual ASC”); // urutan, kosongkan jika tidak memakai urutan
    $hal->setOption(“page”, $_REQUEST["page"]); // setup untuk ambil variable angka halaman (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)

    ######modified line
    // bikin object
    $hal = new JinPagination;
    // setup paginasi
    $hal->setOption(“tabel”, “barang”); // nama tabel database
    $hal->setOption(“selection”, “kodebrg, hargajual, hargajual1″); // field yang akan di select beri “*” kalau mau semua field di select
    $hal->setOption(“where”, “WHERE hargajual > 90000″); // where kondisi, kosongkan jika tidak memakai WHERE
    $hal->setOption(“limit”, “15″); // LIMIT tampilan per halaman
    $hal->setOption(“order”, “ORDER BY hargajual ASC”); // urutan, kosongkan jika tidak memakai urutan
    $hal->setOption(“page”, $_REQUEST["page"]); // setup untuk ambil variable angka halaman (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)

    mudah-mudahan tidak salah dan tidak mengganggu :)

    Thumb up 0 Thumb down 0

  • Adi Suwarso says:

    Using Opera Opera 9.80 on Windows Windows Vista

    wakkk, jelek amat tampilan comment saya,,, gimana caranya supaya pada comment baris-baris script code masuk kedalam kotak ‘source’ seperti mas seperti punyanya mas Jawaad ya?
    :)

    Thumb up 0 Thumb down 0

  • Adi Suwarso says:

    Using Opera Opera 9.80 on Windows Windows Vista

    yup,,, malah bingung :)

    ######original line
    $var_tambahan = ”;
    if(isset($_GET['perintah'])) {
    $var_tambahan .= “perintah=”.$_GET['perintah'].”&”;
    }
    if(isset($_GET['sorting'])) {
    $var_tambahan .= “sorting=”.$_GET['sorting'].”&”;
    }

    $hal->setOption(“web_url_page”, “?”.$var_tambahan.”page=”);

    ganti jadi:
    ######modified line
    $var_tambahan = ‘perintah=daftarharga&sorting=tanggal&’;
    $hal->setOption(“web_url_page”, “?”.$var_tambahan.”page=”); // setup alamat url (berguna jika menggunakan SEO url, ubah sesuai dgn kebutuhan)

    maaf, kelebihannya apa mas kalo saya pake baris-baris yang mas Jawaad kasih (belum terpikir), yang saya rubah malah terlalu simpel ya…

    ato ada kekurangan tambahan baris pada script class-nya? kayaknya pertanyaan yang gak nyambung ya :(

    sorry…

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using PHP PHP

    @Adi Suwarso, mas untuk komen code silahkan pakai

    &lt;pre lang="php"&gt;
    // code nya disini
    &lt;/pre&gt;


    Oya mas, itu bagian yg mas ubah:

    $var_tambahan = 'perintah=daftarharga&sorting=tanggal&'; // *)
    $hal->setOption("web_url_page", "?".$var_tambahan."page=");

    *) kok perintah nya selalu daftarharga dan sortingnya selalu tanggal? kalau tidak dinamis, mendingan langsung aja dibagian web_url_page. jadi begini:

    $var_tambahan = ''; // ini dihapus saja
    $hal->setOption(”web_url_page”, "?perintah=daftarharga&sorting=tanggal&page=");

    Thumb up 0 Thumb down 0

  • Adi Suwarso says:

    Using Opera Opera 9.80 on Windows Windows Vista

    itu hanya contoh saja mas… :)

    pada implementasinya itu memang harus dinamis kok,,, masih pengembangan jadi masih bolak-balik di ‘daftarharga’ dan tanggal ;)

    nantinya pagination ini akan dijalankan sesuai perintah yang diberikan…

    terima kasih

    Thumb up 0 Thumb down 0


  • Using Mozilla Firefox Mozilla Firefox 3.0.7 on Windows Windows XP

    Bagaimana kalau search-nya menggunakan metode POST

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.5.7 on Ubuntu Linux Ubuntu Linux

    @Stiksa Eureka, kalau pakai method POST, class nya mesti diubah $web_url_page nya dengan menggunakan variable hidden post.
    Semoga membantu.

    Thumb up 0 Thumb down 0


  • Using Mozilla Firefox Mozilla Firefox 3.0.7 on Windows Windows XP

    sebenarnya masih bingung tapi biar saya coba cari dulu tutorial penggunaan variable hidden post.

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.5.7 on Windows Windows XP

    @Stiksa Eureka, oiya tinggal ubah saja bagian:
    Yang tadinya pakai $_GET.

    $hal->setOption("where", "WHERE `nama` LIKE '%".$_GET['search']."%'"); // 
    $hal->setOption("web_url_page", "?search=".$_GET['search']."&page=");

    diubah menjadi pakai $_POST.

    $hal->setOption("where", "WHERE `nama` LIKE '%".$_POST['search']."%'"); // 
    $hal->setOption("web_url_page", "?search=".$_POST['search']."&page=");

    semoga membantu.

    Thumb up 0 Thumb down 0


  • Using Mozilla Firefox Mozilla Firefox 3.0.7 on Windows Windows XP

    Nanya lagi, saya pake WP, bagaimana memanggil sticky post di wordpress (maaf kalo banyak nanya)

    Soalnya gini saya make wp, tapi untuk halaman index-nya saya mau kombinasi dengan script ini, maksudnya biar lebih bebas mengatur tampilan.

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.5.7 on Windows Windows XP

    @Stiksa Eureka, Kalau pakai WP, mendingan pakai Plugin saja.
    http://wordpress.org/extend/plugins/wp-pagenavi/

    Thumb up 0 Thumb down 0


  • Using Mozilla Firefox Mozilla Firefox 3.0.7 on Windows Windows XP

    Makasih Mas.

    Thumb up 0 Thumb down 0


  • Using Mozilla Firefox Mozilla Firefox 3.0.15 on Windows Windows 7

    pak,,, minta contoh tabelnya,, saya kesulitan memodifikasi dengan tabel daya terima kasih, mohon di kirim ke email saya putrablora@yahoo.co.id

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 3.5.7 on Windows Windows XP

    @Budi,
    Tabel pakai kode html sederhana saja kan?
    Kalau Anda sudah ada tabelnya tinggal copy paste aja.
    Ini contoh tabel:

    echo "
    		<table>
    			<tr>
    				<th>No</th>
    				<th>Kode</th>
    				<th>Nama</th>
    				<th>Ket</th>
    			</tr>
    	";
    // data
    while($data = mysql_fetch_array($hal_array["hasil"])){
    	echo "
    			<tr>
    				<td>" . $no . "</td>
    				<td>" . $data['code'] . "</td>
    				<td>" . $data['nama'] . "</td>
    				<td>" . $data['ket'] . "</td>
    			</tr>
    	";
    	$no++;
    }
     
    echo "
    		</table>
    	";

    Thumb up 0 Thumb down 0

  • hafiz says:

    Using Google Chrome Google Chrome 17.0.963.83 on Windows Windows 7

    mas, emang aplikasi ini kita bisa menghasilkan uang ya mas…?

    Thumb up 0 Thumb down 0

  • Supriyadi says:

    Using Google Chrome Google Chrome 29.0.1547.57 on Windows Windows 7

    Gan, link download class.pagination nya sudah gak aktif lagi ya….
    hiks..hiks hiks…
    jadi kagak bisa ikotan download nya

    Thumb up 0 Thumb down 0

  • Jawaad says:

    Using Mozilla Firefox Mozilla Firefox 25.0 on Windows Windows 7

    @Supriyadi, bisa kok gan, silahkan dicoba.

    Thumb up 0 Thumb down 0

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.