About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • PHP
  • /
  • Membuat Nomor Urut Hasil Query di PHP (Combined with Paging)
PHP

Membuat Nomor Urut Hasil Query di PHP (Combined with Paging)

Baru memposting artikel tentang membuat nomor urut hasil query di PHP beberapa hari yang lalu, eh… ada yang berkomentar di artikelnya “Kok kalo dikombinasikan dengan paging, nomor urutnya balik mulai dari 1 lagi untuk setiap halamannya ya?” 🙂

He.. 3x makasih buat Anda yang telah berkomentar. Atas komentar itulah saya buat artikel ini yang merupakan kelanjutan artikel sebelumnya. Kali ini nomor urut hasil query akan diterapkan dalam konsep paging. Untuk lebih menyingkat pembahasan, alangkah baiknya kita gunakan konsep advanced paging yang pernah dibahas di blog ini sebelumnya.

Di sini dimisalkan kita memiliki struktur tabel yang sama seperti yang dibahas di advanced paging, dan script yang sama pula. Namun… kita sedikit akan melakukan modifikasi pada script tersebut supaya memunculkan nomor urutnya.

OK… untuk menampilkan nomor urut di setiap halaman, konsepnya adalah dengan memanfaatkan nomor halaman dan jumlah data yang ditampilkan pada setiap halamannya. Mengapa kedua hal tersebut digunakan? ya… misalkan Anda ingin menampilkan data per halamannya adalah 5 buah. Untuk halaman 1, tentu nomor urut datanya adalah mulai dari 1 yaitu 1, 2, 3, 4, 5. Sedangkan untuk halaman 2, nomor halamannya mulai dari 6, yaitu 6, 7, 8, 9, 10. Dab halaman 3, nomor halamannya mulai dari 11, yaitu 11, 12, 13, 14, 15 begitu seterusnya.

Nah.. bisa tidak Anda membaca hubungan antara nomor urut awal yang tampil di setiap halaman dengan nomor halamannya? OK.. kalau tidak bisa, ini saya kasih clue nya

1 = 1 + 0 . 4
6 = 2 + 1 . 4
11 = 3 + 2 . 4
.
.
dst

Sudah bisa membaca hubungan ketiganya bukan? Ya… hubungan secara umum adalah sbb:

i = p + (p-1) . (n-1)

dengan i adalah nomor urut awal pada halaman ke-p. Sedangkan n adalah jumlah data yang ditampilkan pada setiap halaman.

Setelah kita dapat hubungan antara nomor urut awal dengan nomor halamannya, ya… udah deh, kita tinggal modifikasi script paging nya saja.

Dari artikel advanced paging, kita tambahkan beberapa kode untuk menampilkan nomor urut datanya, dan menjadi seperti di bawah ini

<?php
mysql_connect('namahost', 'dbuser', 'dbpassword');
mysql_select_db('dbname');
 
// jumlah data yang akan ditampilkan per halaman
$dataPerPage = 5;
 
// apabila $_GET['page'] sudah didefinisikan, gunakan nomor halaman tersebut, 
// sedangkan apabila belum, nomor halamannya 1.
 
if(isset($_GET['page']))
{
    $noPage = $_GET['page'];
} 
else $noPage = 1;
 
$offset = ($noPage - 1) * $dataPerPage;
 
$query = "SELECT * FROM guestbook LIMIT $offset, $dataPerPage";
 
$result = mysql_query($query) or die('Error');

// membaca nomor halaman 
$noPage = $_GET['page'];

// membuat nomor urut awal di setiap halaman berdasarkan formula di atas
$i = $noPage + ($noPage - 1) * ($dataPerPage - 1);

// menampilkan data dan nomor urutnya 
echo "<table border='1'>";
echo "<tr><td>No.</td><td>Nama</td><td>Email</td><td>Tanggal</td><td>Komentar</td></tr>";
while($data = mysql_fetch_array($result))
{
   echo "<tr><td>".$i."</td><td>".$data['nama']."</td><td>".$data['email']."</td><td>".$data['tanggal']."</td><td>".$data['komentar']."</td></tr>";
   $i++;   // increment untuk nomor urut data
}
 
echo "</table>";
 
$query   = "SELECT COUNT(*) AS jumData FROM guestbook";
$hasil  = mysql_query($query);
$data     = mysql_fetch_array($hasil);
 
$jumData = $data['jumData'];
 
$jumPage = ceil($jumData/$dataPerPage);
 
if ($noPage > 1) echo  "<a href='".$_SERVER['PHP_SELF']."?page=".($noPage-1)."'><< Prev</a>";
 
for($page = 1; $page <= $jumPage; $page++)
{
         if ((($page >= $noPage - 3) && ($page <= $noPage + 3)) || ($page == 1) || ($page == $jumPage)) 
         {   
            if (($showPage == 1) && ($page != 2))  echo "..."; 
            if (($showPage != ($jumPage - 1)) && ($page == $jumPage))  echo "...";
            if ($page == $noPage) echo " <b>".$page."</b> ";
            else echo " <a href='".$_SERVER['PHP_SELF']."?page=".$page."'>".$page."</a> ";
            $showPage = $page;          
         }
}
 
if ($noPage < $jumPage) echo "<a href='".$_SERVER['PHP_SELF']."?page=".($noPage+1)."'>Next >></a>";
 
?>

Nah.. mudah bukan membuatnya? Dalam dunia programming, Anda harus jeli dalam melihat keterkaitan antara input dengan outputnya supaya muncul formulasi ide dalam penyelesaiannya.

OK… selamat mencoba ya… 🙂

 


Beli Buku Pemrograman

5 Langkah Mudah Menguasai React Native
Rahasia Inti Master PHP & MySQLi (Improved)
Jalan Pintas Menjadi Master React JS
Trik Kolaborasi React dengan PHP & MySQL

Article by Request

Anda belum memahami konsep pemrograman PHP Native, Python, Java, atau SQL? atau Anda belum punya ide penyelesaian dari studi kasus yang dihadapi sampai saat ini.

Silakan manfaatkan layanan Article by Request di blog ini.

Bagikan artikel ini jika bermanfaat !

Assalaamu'alaikum.. aktivitas keseharian saya mengajar di Universitas Sebelas Maret, dengan matakuliah pemrograman dan basis data. Adapun bidang penelitian saya tentang computational thinking dan computer-aided learning.

Leave a Reply