Tutorial Programming

Tutorial Paging dengan menggunakan PHP


Pertama buat dulu sebuah database kemudian download tabel provinsi disini yang akan kita gunakan sebagai studi kasus dalam membuat paging dengan php. Setelah anda download import ke dalam database yang telah anda buat.

Langkah 1

Buat script untuk koneksi ke mysql database.

$kon = mysql_connect("localhost","root","");
mysql_select_db("nama_database",$kon);
Kode diatas merupakan script untuk melakukan koneksi ke database mysql. Ganti nama_database dengan nama database anda.

Langkah 2

Menampilkan Data Dari Database

<table border="1" style="border-collapse:collapse" cellpadding="5px">
 
<tr>
<th>No</th>
<th>Nama Provinsi</th>
</tr>
 
<?php
 
$sql = mysql_query("SELECT * FROM prov");
$no = 1;
while ( $r = mysql_fetch_assoc( $sql ) ) {
?>
<tr>
<td><?= $no; ?></td>
<td><?= $r['nama_prov']; ?></td>
</tr>
<?php
$no++;
}
?>
</table>

Script diatas adalah script umum untuk menampilkan data dari database. Script php tersebut akan menampilkan seluruh data dari database. Kode ini nanti kita akan modifikasi sehingga menampilkan jumlah data berdasarkan batas atau limit yang kita tentukan.
Anda bisa lihat kode <?= $no; ?>,  Sekedar informasi bahwa kode ini sama saja jika anda menuliskannya seperti <?php echo $no; ?>

Langkah 3

Menambahkan script paging pada script yang ada pada langkah 2, jadi saya akan menambahkan beberapa kode pada script yang ada pada langkah 2 sehingga kodenya seperti dibawah ini. Jika anda bingung anda bisa melihat script lengkapnya pada akhir postingan ini.

<table border='1' style="border-collapse:collapse" cellpadding="5px">
 
<tr>
<th>No</th>
<th>Nama Provinsi</th>
</tr>
 
<?php
$batas = 10;
$pg = isset( $_GET['pg'] ) ? $_GET['pg'] : "";
 
if ( empty( $pg ) ) {
$posisi = 0;
$pg = 1;
} else {
$posisi = ( $pg - 1 ) * $batas;
}
 
$sql = mysql_query("SELECT * FROM prov limit $posisi, $batas");
$no = 1+$posisi;
while ( $r = mysql_fetch_assoc( $sql ) ) {
?>
<tr>
<td><?= $no; ?></td>
<td><?= $r['nama_prov']; ?></td>
</tr>
<?php
$no++;
}
?>
<tr>
<td colspan="2">
<?php
//hitung jumlah data
$jml_data = mysql_num_rows(mysql_query("SELECT * FROM prov"));
//Jumlah halaman
$JmlHalaman = ceil($jml_data/$batas); //ceil digunakan untuk pembulatan keatas
 
//Navigasi ke sebelumnya
if ( $pg > 1 ) {
$link = $pg-1;
$prev = "<a href='?pg=$link'>Sebelumnya </a>";
} else {
$prev = "Sebelumnya ";
}
 
//Navigasi nomor
$nmr = '';
for ( $i = 1; $i<= $JmlHalaman; $i++ ){
 
if ( $i == $pg ) {
$nmr .= $i . " ";
} else {
$nmr .= "<a href='?pg=$i'>$i</a> ";
}
}
 
//Navigasi ke selanjutnya
if ( $pg < $JmlHalaman ) {
$link = $pg + 1;
$next = " <a href='?pg=$link'>Selanjutnya</a>";
} else {
$next = " Selanjutnya";
}
 
//Tampilkan navigasi
echo $prev . $nmr . $next;
?>
</td>
</tr>
</table>

SELECT * FROM prov limit $posisi, $batas

Nilai default dari $posisi adalah 0, dan $batas bernilai batas yang kita masukkan. Sehingga query mysqlnya akan seperti ini
SELECT * FROM prov limit 0, 10

Pada saat kita ke halaman selanjutnya maka secara otomatis posisi akan berubah berdasarkan rumus yang telah kita terapkan ( Lihat script sebelum melakukan query diatas ), sehingga query akan seperti ini:
SELECT * FROM prov limit 10, 10

Begitu seterusnya.

Adapun pada navigasi, anda bisa melihat penjelasannya pada komentar yang saya sertakan dalam script.



Script lengkap paging sederhana dengan php

<?php
 
$kon = mysql_connect("localhost","root","");
mysql_select_db("nama_database",$kon);
 
?>
 
<table border='1' style="border-collapse:collapse" cellpadding="5px">
 
<tr>
<th>No</th>
<th>Nama Provinsi</th>
</tr>
 
<?php
$batas = 10;
$pg = isset( $_GET['pg'] ) ? $_GET['pg'] : "";
 
if ( empty( $pg ) ) {
$posisi = 0;
$pg = 1;
} else {
$posisi = ( $pg - 1 ) * $batas;
}
 
$sql = mysql_query("SELECT * FROM prov limit $posisi, $batas");
$no = 1+$posisi;
while ( $r = mysql_fetch_assoc( $sql ) ) {
?>
<tr>
<td><?= $no; ?></td>
<td><?= $r['nama_prov']; ?></td>
</tr>
<?php
$no++;
}
?>
<tr>
<td colspan="2">
<?php
//hitung jumlah data
$jml_data = mysql_num_rows(mysql_query("SELECT * FROM prov"));
//Jumlah halaman
$JmlHalaman = ceil($jml_data/$batas); //ceil digunakan untuk pembulatan keatas
 
//Navigasi ke sebelumnya
if ( $pg > 1 ) {
$link = $pg-1;
$prev = "<a href='?pg=$link'>Sebelumnya </a>";
} else {
$prev = "Sebelumnya ";
}
 
//Navigasi nomor
$nmr = '';
for ( $i = 1; $i<= $JmlHalaman; $i++ ){
 
if ( $i == $pg ) {
$nmr .= $i . " ";
} else {
$nmr .= "<a href='?pg=$i'>$i</a> ";
}
}
 
//Navigasi ke selanjutnya
if ( $pg < $JmlHalaman ) {
$link = $pg + 1;
$next = " <a href='?pg=$link'>Selanjutnya</a>";
} else {
$next = " Selanjutnya";
}
 
//Tampilkan navigasi
echo $prev . $nmr . $next;
?>
</td>
</tr>
</table>

Untuk memudahkan anda, sebaiknya script pagingnya anda tulis dalam fungsi sehingga saat anda membutuhkannya, anda cukup memanggil fungsi tersebut. Semoga Bermanfaat.

No comments:

Post a Comment

Tutorial Programming Designed by Templateism | Ary EJFA Copyright © 2015

Theme images by richcano. Powered by Blogger.