Penawaran Engine Reservasi Tiket Pesawat

Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP


Teknik Membuat On Page Paging


November 3rd, 2009 | by rosihanari | Cetak Artikel Cetak Artikel


Jual kaos

Seringkali apabila kita menjumpai teknik tentang paging, paging yang dimaksud terkait dengan cara penyajian sejumlah data ke dalam beberapa halaman. Saya pun pernah membahas teknik paging ini pada salah satu artikel saya tentang advanced paging.

Namun.. bagaimana bila teknik paging ini diterapkan pada sebuah artikel? Idenya begini, misalkan kita membuat script CMS untuk menampilkan sebuah artikel. Selanjutnya andaikan kita punya sebuah artikel yang suangaa..aat panjang. Karena saking panjangnya, kita ingin membuat artikel tersebut terbagi ke dalam beberapa halaman. Nah… teknik ini nantinya juga akan menggunakan paging.

Trus.. bagaimana tuh cara membuatnya?

OK… sebagai contoh, misalkan kita memiliki tabel untuk menyimpan artikel seperti di bawah ini:

CREATE TABLE `post` (
  `id` int(11) auto_increment,
  `title` varchar(100),
  `konten` text,
  PRIMARY KEY (`id`)
)

Untuk tabel contoh di atas, sengaja saya ambil sederhana saja ya, yaitu terdiri dari field ‘id’, ‘title’, dan ‘konten’. Anda bisa menambahkan field yang lain, misalnya tanggal posting, author dan juga kategori artikel.

Sedangkan contoh data artikelnya sebagaimana tersaji pada contoh berikut ini:

INSERT INTO `post` VALUES ('1', 'Judul 1', 'ini adalah halaman pertama. ini adalah halaman pertama. ini adalah halaman pertama. ini adalah halaman pertama. ini adalah halaman pertama. ini adalah halaman pertama.<!--next-->ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua.<!--next-->ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ');
INSERT INTO `post` VALUES ('2', 'Judul 2', 'ini adalah halaman pertama. ini adalah halaman pertama. ini adalah halaman pertama. ini adalah halaman pertama. ini adalah halaman pertama. ini adalah halaman pertama.<!--next-->ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua. ini adalah halaman kedua. <!--next-->ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ini adalah halaman ketiga. ');

Bila Anda perhatikan sampel data di atas, terlihat bahwa di dalam postingan terdapat tanda

<!--next-->

Tanda ini nantinya digunakan untuk pemisah halaman pada artikel tersebut. Konsep penggunaan tanda pemisah ini saya adopsi dari teknik yang digunakan oleh WordPress. Tanda itu sebaiknya disisipkan secara manual ke dalam artikel, bukannya secara otomatis, karena hanya author atau penulis artikelah yang tahu kapan dan di bagian mana harus memenggal halamannya.

Oya… Anda juga boleh menggunakan atau membuat tanda pemisah lain sesuai keinginan sendiri.

OK… kita lanjutkan. Sekarang untuk skenarionya, pertama kita buat script untuk memunculkan semua judul artikel yang ada dalam tabel database. Selanjutnya bila kita klik salah satu title, maka akan tampil full artikelnya.

Berikut ini adalah script untuk memunculkan semua title artikelnya.

artikel.php

<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

$query = "SELECT * FROM post";
$hasil = mysql_query($query);

// menampilkan list judul artikel

echo "<ul>";
while ($data = mysql_fetch_array($hasil))
{
   echo "<li><a href='view.php?id=".$data['id']."'>".$data['title']."</a></li>";
}
echo "</ul>";
?>

Hasil dari script di atas tampak pada gambar di bawah ini

on page paging

Nah.. kemudian kita akan membuat script view.php nya. Namun sebelum kita mulai membuatnya, kita harus punya ide terlebih dahulu.

Bagaimana idenya? OK misalkan kita punya sebuah string sbb:

xxxxxx<!--next-->yyyyyy<!--next-->zzzzzz

Untuk konsep paging on page tersebut, langkah pertama kita pecah dahulu string di atas ke dalam beberapa substring. Substring ini nanti akan dikaitkan dengan masing-masing halaman. Pemecahan tersebut dilakukan berdasar tanda . Sehingga dari proses ini kita dapatkan 3 buah subtring (3 buah halaman) yang tersimpan dalam bentuk array, yaitu subtring pertama (array ke-0) yang nanti sebagai halaman pertama yaitu ‘xxxxxx’ , subtring kedua (array ke-1) yang nanti sebagai halaman kedua, dan subtring ketiga (array ke-2) yang nanti sebagai halaman ketiga.

OK… berikutnya kita bisa terapkan konsep di atas pada script view.php

view.php

<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// membaca id artikel dari link
$id = $_GET['id'];

// query untuk membaca data artikel berdasar id
$query = "SELECT * FROM post WHERE id = '$id'";
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);

// memecah artikel berdasarkan tanda pemisah
$pecah = explode("<!--next-->", $data['konten']);

// menampilkan title
echo "<h1>".$data['title']."</h1>";

// menampilkan halaman pertama dari artikel
echo "<p>".$pecah[0]."</p>";

// menampilkan link paging
echo "<p>Halaman: ";
for ($i=1; $i<=count($pecah); $i++)
{
   echo "<a href='view.php?id=".$data['id']."&page=".$i."'>".$i."</a> ";
}
echo "<p>";
}

?>

Bila kita perhatikan link paging di atas, maka link tersebut berbentuk

<a href='view.php?id=...&page=...'>...</a>

yang dalam hal ini, nomor halaman yang dituju adalah berdasarkan parameter ‘page’ nya. Sekarang bagaimana cara menampilkan isi dari halaman tertentu? Ini dia script modifikasinya

view.php

<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// membaca id artikel dari link
$id = $_GET['id'];

// query untuk membaca data artikel berdasar id
$query = "SELECT * FROM post WHERE id = '$id'";
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);

// memecah artikel berdasarkan tanda pemisah
$pecah = explode("<!--next-->", $data['konten']);

// menampilkan title
echo "<h1>".$data['title']."</h1>";

// jika parameter 'page' belum digunakan, maka akan menampilkan isi halaman pertama (array ke-0)
// jika parameter 'page' sudah diset, maka akan menampilkan isi halaman ke-i yang dituju (array ke-(i-1))
if (isset($_GET['page']))
{
   echo "<p>".$pecah[$_GET['page']-1]."</p>";
}
else echo "<p>".$pecah[0]."</p>";

// menampilkan link paging
echo "<p>Halaman: ";
for ($i=1; $i<=count($pecah); $i++)
{
   echo "<a href='view.php?id=".$data['id']."&page=".$i."'>".$i."</a> ";
}
echo "<p>";
}

?>

OK.. sudah sedikit lebih baik sekarang scriptnya. Namun… masih ada kelemahan sedikit, yaitu bila dalam artikel tersebut tidak ada paging (mungkin karena artikelnya pendek), maka link paging halaman tersebut masih tetap muncul. So… kita mesti modifikasi sedikit dalam view.php nya menjadi:

view.php

<?php
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// membaca id artikel dari link
$id = $_GET['id'];

// query untuk membaca data artikel berdasar id
$query = "SELECT * FROM post WHERE id = '$id'";
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);

// memecah artikel berdasarkan tanda pemisah
$pecah = explode("<!--next-->", $data['konten']);

// menampilkan title
echo "<h1>".$data['title']."</h1>";

// jika parameter 'page' belum digunakan, maka akan menampilkan isi halaman pertama (array ke-0)
// jika parameter 'page' sudah diset, maka akan menampilkan isi halaman ke-i yang dituju (array ke-(i-1))
if (isset($_GET['page']))
{
   echo "<p>".$pecah[$_GET['page']-1]."</p>";
}
else echo "<p>".$pecah[0]."</p>";

if (count($pecah) > 1)
{
   // menampilkan link paging jika jumlah pecahan artikelnya > 1
   echo "<p>Halaman: ";
   for ($i=1; $i<=count($pecah); $i++)
   {
      echo "<a href='view.php?id=".$data['id']."&page=".$i."'>".$i."</a> ";
   }
   echo "<p>";
}

?>

Hasil script view.php di atas tampak pada gambar di bawah ini:

on page paging

Mudah bukan membuatnya? Selamat mencoba ya…




Share ke Facebook Share ke Twitter
Baca Juga Artikel Terkait
Membuat Nomor Urut Hasil Query di PHP (Combined with Paging)
Ide Membuat Advanced Paging dengan PHP
Membuat Nomor Halaman (Paging) di WordPress
Script PHP Menampilkan Hasil Pencarian Multikategori dengan Advanced Paging
Teknik Memvalidasi Input Tanggal dengan PHP

Kata kunci: php script paging cms - script paging artikel - script php paging - teknik paging - teknik paging php -


 

Komentar Anda ...