Pada saat kita menggunakan query
SQL SELECT
, kita bisa
saja menampilkan ribuan data. Sangat tidak sarankan untuk menampilkan
semua hasil data pada satu halaman. Sebaiknya kita membagi hasil yang
banyak ini menjadi beberapa halaman sesuai kebutuhan.Paging berarti membagi hasil query kita di beberapa halaman, bukan menempatkan semua data dalam satu halaman. MySQL membantu dalam menghasilkan paging dengan menggunakan
LIMIT
dengan mengambil dua argumen. Argumen pertama sebagai OFFSET
dan argumen kedua tentang berapa banyak data yang harus dihasilkan dari database.Lebih jelas tentang pagination: Pagination
Di bawah ini adalah contoh skrip sederhana untuk mengambil data menggunakan
LIMIT
dalam menghasilkan paging.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
<html>
<head>
<title>Paging dengan PHP</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$batas = 3;
$koneksi = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $koneksi )
{
die('Gagal Koneksi: ' . mysql_error());
}
mysql_select_db('test_db');
/* Get total number of records */
$sql = "SELECT count(id_karyawan) FROM karyawan ";
$ambildata = mysql_query( $sql, $koneksi );
if(! $ambildata )
{
die('Gagal Ambil Data: ' . mysql_error());
}
$row = mysql_fetch_array($ambildata, MYSQL_NUM );
$hitung = $row[0];
if( isset($_GET{'page'} ) )
{
$page = $_GET{'page'} + 1;
$offset = $batas * $page ;
}
else
{
$page = 0;
$offset = 0;
}
$left_rec = $hitung - ($page * $batas);
$sql = "SELECT id_karyawan, nama_karyawan, gaji_karyawan ".
"FROM karyawan ".
"LIMIT $offset, $batas";
$ambildata = mysql_query( $sql, $koneksi );
if(! $ambildata )
{
die('Gagal Ambil Data: ' . mysql_error());
}
while($row = mysql_fetch_array($ambildata, MYSQL_ASSOC))
{
echo "ID KARYAWAN:{$row['id_karyawan']} <br> ".
"NAMA KARYAWAN : {$row['nama_karyawan']} <br> ".
"GAJI KARYAWAN : {$row['gaji_karyawan']} <br> ".
"--------------------------------<br>";
}
if( $page > 0 )
{
$last = $page - 2;
echo "<a href=\"index.php?page=$last\">3 Data sebelumnya</a> |";
echo "<a href=\"index.php?page=$page\">3 Data lagi</a>";
}
else if( $page == 0 )
{
echo "<a href=\"index.php?page=$page\">3 Data lagi</a>";
}
else if( $left_rec < $batas )
{
$last = $page - 2;
echo "<a href=\"index.php?page=$last\">3 Data sebelumnya</a>";
}
mysql_close($koneksi);
?>
|
Perhatikan skrip dan gambar diatas, limit atau batas di atur ke angka 3, sehingga hanya 3 data yang ditampilkan dalam setiap halaman.
Happy CODING!
0 comments:
Post a Comment