Simple Pagination dengan PHP dan MySQL. Tutorialweb kembali menuliskan tutorial nih, kali ini adalah tutorial cara membuat pagination dengan PHP dan MySQL, atau bisa cara membuat navigasi halaman untuk menampilkan data yang ada di database. Intinya nanti kita akan menampilkan data dari database yang dalam menampilkannya dibatasi hanya beberapa data saja, dan data yang lainnya ada pada halaman selanjutnya.
Yang dibutuhkan nanti adalah tentu saja sebuah database, dan juga table yang sudah terisi beberapa data. Kemudian akan dibuat script PHP untuk menampilkannya dalam bentuk paging.
Oke, langsung saja, pertama buat sebuah Database, dalam artikel ini nama database adalah tutorialweb. Kemudian Dumping /Import script SQL di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
CREATE TABLE `paging` ( `id` int(11) NOT NULL auto_increment, `nama` varchar(32) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=25 ; -- -- Dumping data for table `paging` -- INSERT INTO `paging` VALUES (1, 'Fatoni'); INSERT INTO `paging` VALUES (2, 'Arif'); INSERT INTO `paging` VALUES (3, 'Tedy'); INSERT INTO `paging` VALUES (4, 'Sultoni'); INSERT INTO `paging` VALUES (5, 'Mohammad'); INSERT INTO `paging` VALUES (6, 'Mustain'); INSERT INTO `paging` VALUES (7, 'Ayu'); INSERT INTO `paging` VALUES (8, 'Safitri'); INSERT INTO `paging` VALUES (9, 'Ahmad'); INSERT INTO `paging` VALUES (10, 'Kiwil'); INSERT INTO `paging` VALUES (11, 'Abdul'); INSERT INTO `paging` VALUES (12, 'Rohman'); INSERT INTO `paging` VALUES (13, 'Vivin'); INSERT INTO `paging` VALUES (14, 'Megawati'); INSERT INTO `paging` VALUES (15, 'Jokowi'); INSERT INTO `paging` VALUES (16, 'Sukowi'); INSERT INTO `paging` VALUES (17, 'Dwi'); INSERT INTO `paging` VALUES (18, 'Ikke'); INSERT INTO `paging` VALUES (19, 'Janah'); INSERT INTO `paging` VALUES (20, 'Evitamala'); INSERT INTO `paging` VALUES (21, 'Ttorialweb'); INSERT INTO `paging` VALUES (22, 'JagoScript'); INSERT INTO `paging` VALUES (23, 'GuideKomputer'); INSERT INTO `paging` VALUES (24, 'Pino'); |
Script diatas akan mendapatkan sebuah Table dengan nama paging, dan sudah terisi beberapa data.
Selanjutnya adalah membuat script PHP untuk menampilkan data dengan paging, dan berikut ini scriptnya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<html> <head> <title>Simple Pagination by TUTORIALWEB.NET</title> </head> <body> <?php mysql_connect("localhost", "root", "root"); mysql_select_db("tutorialweb"); $per_page = 5; $page_query = mysql_query("SELECT COUNT(*) FROM paging"); $pages = ceil(mysql_result($page_query, 0) / $per_page); $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; $start = ($page - 1) * $per_page; $query = mysql_query("SELECT * FROM paging LIMIT $start, $per_page"); while($query_row = mysql_fetch_assoc($query)){ echo '<p>'.$query_row['id'].' - '.$query_row['nama'].'</p>'; } if($pages >= 1 && $page <= $pages){ for($x=1; $x<=$pages; $x++){ echo ($x == $page) ? '<b><a href="?page='.$x.'">'.$x.'</a></b> ' : '<a href="?page='.$x.'">'.$x.'</a> '; } } ?> </body> </html> |
Jangan lupa simpan dengan nama paging.php
Jika sudah maka jalankan dalam browser Anda dan tampilannya akan seperti gambar di bawah ini
Untuk merubah jumlah tampilan data yang keluar, ubah nilai pada baris ke 5 dari script di atas, default adalah 5.
Silahkan coba sendiri, dan jika ada kesulitan silahkan tinggalan komentar Anda dibawah.
mas, bisa gak membuat paging tanpa database, kayaknya lebih simpel itu
bisa aja,
kalo namanya diganti sama page html atau php gimana mas ?
maksudnya ?page itu di ganti sama ?html atau ?php
tinggal ganti aja setiap ada kata ?page
Kalau utk membuat batasn page yang muncul gimana mas admin? maksud saya begini, misal kita punya database yang cukup banyak katakanlah 10.000 record kalau kita tampilakan per halaman hanya 25 record tentu akan banyak halaman paging nya. Nah bagaimana utk mengakali supaya halaman paging yang muncul (yang bisa diklik oleh pengunjung) kita batasi misal hanya 5 link terakhir. Nah pada saat salah satu dari 5 link terakhir tsb diklik, maka akan muncul link selanjutnya yang juga 5 terakhir dari link paging yang di klik tsb. Mudah2an mengerti maksd saya ya Min. Trims atas jawabannya.
kalo untuk seperti itu bisa lihat tutorial disini http://blog.rosihanari.net/ide-membuat-advance-paging-dengan-php/
akhirnya ada dapet juga yang berhasil tanpa error sedikit pun.
thanks, salam kenal
salam kenal jga…!
and tetep semangat..
nice share mas. Kebetulan ane lagi cari tutorial macam gini. thx ya…
jangan lupa mampir blog saya.
sepp gan,,
mantap gan langsung top cerr
akhir nya nemu juga tutorial yang mudah di pahami .
thx
sama2 gan..
wah ganti template bootstrap nie gan..hehe mantap
mantap
Gan sory kalo keluar dari topik , ada sebagian script ane ga muncul nih . kemarin pake xampp versi 1.7.4 nah terus ane ganti versi nya jadi versi 1.8, waktu pake 1.7 keluar si table yang isi nya php , pas ane pake 1.8 malah gamuncul gan..
coba jalanin code yang lain, keluar apa gak
Sama gan ga muncul soalnya pake sistem include dari media ke yang lain..
Solusi nya gimana ya ? ngubek lagi syntax nya atau bisa diakalin di apache ? ane newbie
Dari semua referensi yang saya dpat di internet, ini yang paling simple dan complete!
lanjut gan..
Thx gan! ternyata code nya tidak terlalu.
pake xampp blank gan…
coba pakek appserv gan.
aku kok eror ya bg
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given
<?php
mysql_connect("localhost","root","";
mysql_select_db("ogiana";
$per_page=2;
$page_query=mysql_query('select count(*) from collection';
$pages=ceil(mysql_result($page_query, 0) / $per_page);
$page=(isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start=($page - 1) * $per_page;
$query=mysql_query('select * from collection LIMIT $start, $per_page';
while($query_row=mysql_fetch_assoc($query)){
echo"
$data[gambar]
$data[nama]
$data[harga]
“;
}
?>
help bg newbie
echo”
$query_row[gambar]
$query_row[nama]
$query_row[harga]
“;
masih blm bisa bg
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in
gimana ya
udah bisa bg. tapi halamannya gak keluar :s
coba tambah @ di belakang ‘mysql_fetch_assoc’
jadi seperti ‘@mysql_fetch_assoc’
Makasih gan, informasinya sangat bermanfaat,
Kalau membuat nomor halaman-nya menggunakan warna background gitu gimana gan?
tinggal kasih css gan.misal
keren tuts nya,thx gan
kalo pagination pake oracle bsa kasih tutorialnya gak?? mksih
Belom bisa gan.. sementara pakek mysql bisanya..
gan saya mau tanya, mengapa page halaman yang keluar itu terlalu banyak dan berulang sehingga jadinya 1,2,3,4,1,2,3,4,1,2 dan seterusnya?
apa script sudah betul seperti itu?
saya menampilkan gambar dan beberapa deskripsiny dr tabel. gambarnya ditampilkan menurun & perhalaman. mau saya rubah gambarnya jd loping kesamping & kebawah & ditampilkan perhalaman.
gmana caranya? mohon bantuannya.
tolong jawabannya ke email sy y…
coba gunakan css float=left
salam kenal gan saya mau tnya masalah pemakaian paging ini source pagenya yang saya pakai gan
cariPosisi($batas);
$link = koneksi_db();
$sql = “select * from komentar where post_id = ‘$id’ limit $posisi,$batas”;
$res = mysql_query($sql,$link);
$sql2 = “select * from komentar where post_id = ‘$id'”;
$res2 = mysql_query($sql2);
$jmlrecord = mysql_num_rows($res2);
$jmlhalaman = $p->jumlahHalaman($jmlrecord,$batas);
while ($data = mysql_fetch_array($res)) :
?>
<img src="uploads/image/” alt=”” height=”75″>
navHalaman($_GET[halaman],$jmlhalaman, 0);
echo $linkHalaman;
?>
masalahnya :
itu kan udah tampil beritanya dengan jumlah komen yg ada di berita itu + pagenya di komentar nah setelah klik page next di pagenya content di berita.php ngga tampil (hilang) begitupun dengan komentarnya trus klu klik pervious atau first hasilnya sama ikut hilang juga malahan pagenya juga ikut hilang kira - kira gmna gan ada solusinya ngga buat kasus saya.
untuk lebih jelasnya atw mau coba juga silakan dilihat di http://portalbola.esy.es/berita.php?id=1
sorry gan ini script lengkapnya :
cariPosisi($batas);
$link = koneksi_db();
$sql = “select * from komentar where post_id = ‘$id’ limit $posisi,$batas”;
$res = mysql_query($sql,$link);
$sql2 = “select * from komentar where post_id = ‘$id'”;
$res2 = mysql_query($sql2);
$jmlrecord = mysql_num_rows($res2);
$jmlhalaman = $p->jumlahHalaman($jmlrecord,$batas);
while ($data = mysql_fetch_array($res)) :
?>
<img src="uploads/image/” alt=”” height=”75″>
navHalaman($_GET[halaman],$jmlhalaman, 0);
echo $linkHalaman;
?>
kemungkinan pada $linkHalaman ini kurang tepat. karena hasilnya linknya -> http://portalbola.esy.es/berita.php?halaman=2&id=0
nah, disana id=0, seharusnya id disini adalah id artikel.
jadi mungkin bisa ditambahkan $_GET[‘id’] untuk menambahkan ID halamannya.
makasih gan atas bantuannya udh berhasil
mas koq pas di klik link’a gak muncul malah dia kembali kehalaman index.php
sae mas slam kenal
nice gan artikelnya, sukses buat pino