Eclipse
10-22-2008, 04:54 PM
Mo sharing gimana cara membuat paging dengan menggunakan data yang diambil dari db mysql... Langsung aja mulai yak...
<?
//config, utk konek ke database
$DB_HOST ="localhost" ;
$DB_DB ="nama database" ;
$DB_USER ="user database" ;
$DB_PASS ="password database" ;
//pengaturan paging
$PAGE_DEFAULT = 1;
$PAGESIZE_DEFAULT = 5;
$PAGESIZE_LOWER_LIMIT = 5;
$PAGESIZE_UPPER_LIMIT = 100;
mysql_connect($DB_HOST, $DB_USER, $DB_PASS)
or die("Can't connect to MySQL!");
mysql_select_db($DB_DB);
// parameter untuk mengatur paging: $page = nomor halaman
// halaman pertama = 1. halaman terakhir = -1.
if (!isset($page)) $page = $PAGE_DEFAULT;
if ($page < 1 && $page != -1) $page = 1;
// parameter untuk mengatur paging: $pagesize = ukuran halaman batas
// ukuran terbesar dan terkecil diatur oleh $PAGESIZE_LOWER_LIMIT dan
// $PAGESIZE_UPPER_LIMIT.
if (!isset($pagesize)) $pagesize = $PAGESIZE_DEFAULT;
if ($pagesize < $PAGESIZE_LOWER_LIMIT)
$pagesize = $PAGESIZE_LOWER_LIMIT;
if ($pagesize > $PAGESIZE_UPPER_LIMIT)
$pagesize = $PAGESIZE_UPPER_LIMIT;
// kita perlu mengetahui jumlah record dulu, jika menginginkan halaman
// terakhir
$res = mysql_query("SELECT COUNT(*) FROM player_profile");
list($total_rows) = mysql_fetch_row($res);
// konversi dari $page & $pagesize menjadi $count & $offset untuk klausa
// LIMIT MySQL
if ($page == -1) {
$count = $pagesize;
$offset = $total_rows - $pagesize;
} else {
$count = $pagesize;
$offset = ($page-1) * $pagesize;
}
// buat bar navigasi prev, next, first, last, pages...
$last_page = ceil($total_rows/$pagesize); // hlm terakhir = jml hlm
$adjacent_pages_links = ($page > 6 ? "..." : "");
for ($i=$page-5; $i<$page; $i++) {
if ($i < 1) continue;
$adjacent_pages_links .= " ".
"<a href=$PHP_SELF?page=$i>$i</a>";
}
$adjacent_pages_links .= " <b>$page</b>";
for ($i=$page+1; $i<($page+6); $i++) {
if ($i > $last_page) break;
$adjacent_pages_links .= " ".
"<a href=$PHP_SELF?page=$i>$i</a>";
}
$adjacent_pages_links .= ($page+5 < $last_page ? " ..." : "");
$navigasi = "<table bgcolor=#e1e1e1 border=0 width=100%><tr>" .
// link ke halaman pertama (jika bukan di halaman pertama)
"<td>".($page == 1 ? "First" :
"<a href=$PHP_SELF?page=1>First</a>")."</td>".
// link ke halaman sebelumnya (jika bukan di halaman pertama)
"<td>".($page == 1 ? "Prev" :
"<a href=$PHP_SELF?page=".($page-1).">Prev</a>")."</td>".
// link 5 halaman ke belakang dan 5 halaman ke depan
"<td align=middle width=100%>$adjacent_pages_links</td>".
// link ke halaman sebelumnya (jika bukan di halaman terakhir)
"<td align=right>".($page == $last_page ? "Next" :
"<a href=$PHP_SELF?page=".($page+1).">Next</a>")."</td>".
// link ke halaman terakhir (jika bukan di halaman terakhir)
"<td align=right>".($page == $last_page ? "Last" :
"<a href=$PHP_SELF?page=$last_page>Last</a>")."</td>".
"</tr></table>";
echo $navigasi; // atas
echo "<br />";
// sekarang baru ambil dan tampilkan data, misalkan menampilkan
// nama, photo dan biodata
echo "<table width=100% border=0 cellspacing=2>
<tr bgcolor=#e1e1e1><td><b>Nama</b></td>
<td><b>Photo</b></td>
<td><b>Biodata</b></td>
</tr>";
//nama table disesuaikan dengan nama table yang ada di db kamu
$res = mysql_query("SELECT * FROM nama_table order by id desc LIMIT $offset,$count");
$i = $offset+1;
while ($row = mysql_fetch_array($res))
{
echo "<tr bgcolor=#",($i %2 ? "ffffff":"e1e1e1"),">
<td><a href=profile_detil.php?id=$row[id]>$row[nama]</a></td>
<td>$row[photo]</td>
<td>$row[biodata]</td>
</tr>";
$i++;
}
echo "</table>";
echo "<br />";
echo $navigasi; // bawah
?>
Kira-kira akan seperti ini hasilnya ( lihat attachment )
<?
//config, utk konek ke database
$DB_HOST ="localhost" ;
$DB_DB ="nama database" ;
$DB_USER ="user database" ;
$DB_PASS ="password database" ;
//pengaturan paging
$PAGE_DEFAULT = 1;
$PAGESIZE_DEFAULT = 5;
$PAGESIZE_LOWER_LIMIT = 5;
$PAGESIZE_UPPER_LIMIT = 100;
mysql_connect($DB_HOST, $DB_USER, $DB_PASS)
or die("Can't connect to MySQL!");
mysql_select_db($DB_DB);
// parameter untuk mengatur paging: $page = nomor halaman
// halaman pertama = 1. halaman terakhir = -1.
if (!isset($page)) $page = $PAGE_DEFAULT;
if ($page < 1 && $page != -1) $page = 1;
// parameter untuk mengatur paging: $pagesize = ukuran halaman batas
// ukuran terbesar dan terkecil diatur oleh $PAGESIZE_LOWER_LIMIT dan
// $PAGESIZE_UPPER_LIMIT.
if (!isset($pagesize)) $pagesize = $PAGESIZE_DEFAULT;
if ($pagesize < $PAGESIZE_LOWER_LIMIT)
$pagesize = $PAGESIZE_LOWER_LIMIT;
if ($pagesize > $PAGESIZE_UPPER_LIMIT)
$pagesize = $PAGESIZE_UPPER_LIMIT;
// kita perlu mengetahui jumlah record dulu, jika menginginkan halaman
// terakhir
$res = mysql_query("SELECT COUNT(*) FROM player_profile");
list($total_rows) = mysql_fetch_row($res);
// konversi dari $page & $pagesize menjadi $count & $offset untuk klausa
// LIMIT MySQL
if ($page == -1) {
$count = $pagesize;
$offset = $total_rows - $pagesize;
} else {
$count = $pagesize;
$offset = ($page-1) * $pagesize;
}
// buat bar navigasi prev, next, first, last, pages...
$last_page = ceil($total_rows/$pagesize); // hlm terakhir = jml hlm
$adjacent_pages_links = ($page > 6 ? "..." : "");
for ($i=$page-5; $i<$page; $i++) {
if ($i < 1) continue;
$adjacent_pages_links .= " ".
"<a href=$PHP_SELF?page=$i>$i</a>";
}
$adjacent_pages_links .= " <b>$page</b>";
for ($i=$page+1; $i<($page+6); $i++) {
if ($i > $last_page) break;
$adjacent_pages_links .= " ".
"<a href=$PHP_SELF?page=$i>$i</a>";
}
$adjacent_pages_links .= ($page+5 < $last_page ? " ..." : "");
$navigasi = "<table bgcolor=#e1e1e1 border=0 width=100%><tr>" .
// link ke halaman pertama (jika bukan di halaman pertama)
"<td>".($page == 1 ? "First" :
"<a href=$PHP_SELF?page=1>First</a>")."</td>".
// link ke halaman sebelumnya (jika bukan di halaman pertama)
"<td>".($page == 1 ? "Prev" :
"<a href=$PHP_SELF?page=".($page-1).">Prev</a>")."</td>".
// link 5 halaman ke belakang dan 5 halaman ke depan
"<td align=middle width=100%>$adjacent_pages_links</td>".
// link ke halaman sebelumnya (jika bukan di halaman terakhir)
"<td align=right>".($page == $last_page ? "Next" :
"<a href=$PHP_SELF?page=".($page+1).">Next</a>")."</td>".
// link ke halaman terakhir (jika bukan di halaman terakhir)
"<td align=right>".($page == $last_page ? "Last" :
"<a href=$PHP_SELF?page=$last_page>Last</a>")."</td>".
"</tr></table>";
echo $navigasi; // atas
echo "<br />";
// sekarang baru ambil dan tampilkan data, misalkan menampilkan
// nama, photo dan biodata
echo "<table width=100% border=0 cellspacing=2>
<tr bgcolor=#e1e1e1><td><b>Nama</b></td>
<td><b>Photo</b></td>
<td><b>Biodata</b></td>
</tr>";
//nama table disesuaikan dengan nama table yang ada di db kamu
$res = mysql_query("SELECT * FROM nama_table order by id desc LIMIT $offset,$count");
$i = $offset+1;
while ($row = mysql_fetch_array($res))
{
echo "<tr bgcolor=#",($i %2 ? "ffffff":"e1e1e1"),">
<td><a href=profile_detil.php?id=$row[id]>$row[nama]</a></td>
<td>$row[photo]</td>
<td>$row[biodata]</td>
</tr>";
$i++;
}
echo "</table>";
echo "<br />";
echo $navigasi; // bawah
?>
Kira-kira akan seperti ini hasilnya ( lihat attachment )