Rabu, 28 Januari 2009

Posted By; Anggi
Membuat PAGE 1 2 3
21-04-2007 | 09:45:29 | Halaman Ini dibaca 1558 kali



Hai selamat pagi semuanya, kali ini saya akan menunjukkan bagai mana cara membuat
halaman bertingkat dalam sebuah website yang content nya di generate dari database,

Jika anda memiliki "Dinamic Website" yang besar dan memiliki ribuan item /product
anda pasti kesulitan untuk menampilkan item tersebut satu persatu secara beraturan,
otomatis dan terkendali.

Solusinya adalah anda bisa memakai halaman,

<-Previous 1 2 3 Next->

dan halaman tersebut contentnya di ambil dari database MySql, selain itu kita juga
bisa menentukan berapa item yang akan kita tampilkan per-halaman.
Menarik bukan???

ini deskripsi nya:



koneksi db.php:
------
$dbhost = 'localhost';
$dbusername = 'user_kamu';
$dbpasswd = 'pass_kamu';
$database_name = 'database_kamu';
#under here, don't touch!

@$connection = mysql_pconnect("$dbhost","$dbusername","$dbpasswd") or die
("MySql Putus tidak bisa connect ke server");
@$db = mysql_select_db("$database_name", $connection) or die("Database tidak ditemukan");
?>


tabel database yang saya gunakan (ini haya contoh):
-----
CREATE TABLE `content` (
`id` int(225) NOT NULL auto_increment,
`judul` varchar(50) collate latin1_general_ci NOT NULL default '',
`isi` longtext collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;

-----

Deskripsi Script:

--------------------------
/* ini kita include koneksi database */
include 'db.php';

/* tentukan table nya */
$table = content;

$hal = $_GET[hal];

/* jika page default nya 1 */
if(!isset($_GET['hal'])){
$page = 1;
} else {
$page = $_GET['hal'];
}

/* tentukan jumlah item per halaman */
$max_results = 5;

/* halaman di kali MAX jumlah item per halaman dikurangi MAX jumlah item per halaman */
/* logika: 1 x 5 = 5 , 5 - 5 = 0 , jadi id database dimulai dari 0*/
$from = (($page * $max_results) - $max_results);

/* tampilkan dari databse, LIMIT dari contuh diatas id dari 0 sampai 5 */
$sql = mysql_query("SELECT * FROM $table ORDER BY id DESC LIMIT $from, $max_results ");
while($row = mysql_fetch_array($sql)){

/* display result, ini tergantung table database mu */
?>




| Halaman Ini dibaca kali





}
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM $table"),0);

$total_pages = ceil($total_results / $max_results);

/* bangun jumlah hiperlink halaman*/
echo "
Select a Page
";

/* bangun Previous link */
if($hal > 1){
$prev = ($page - 1);
echo " <-Previous ";
}

for($i = 1; $i <= $total_pages; $i++){
if(($hal) == $i){
echo "$i ";
} else {
echo "$i ";
}
}

/* bangun Next link */
if($hal < $total_pages){
$next = ($page + 1);
echo "Next->";
}
echo "
";
?>
----------------



Code lebih lengkap nya:
-----------------------
include 'db.php';
$table = content;

$hal = $_GET[hal];

if(!isset($_GET['hal'])){
$page = 1;
} else {
$page = $_GET['hal'];
}

$max_results = 5;

$from = (($page * $max_results) - $max_results);

$sql = mysql_query("SELECT * FROM $table ORDER BY id DESC LIMIT $from, $max_results ");
while($row = mysql_fetch_array($sql)){

?>




| Halaman Ini dibaca kali

echo $row[4];
?>


}

$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM $table"),0);

$total_pages = ceil($total_results / $max_results);

echo "
Select a Page
";

if($hal > 1){
$prev = ($page - 1);
echo " <-Previous ";
}
for($i = 1; $i <= $total_pages; $i++){
if(($hal) == $i){
echo "$i ";
} else {
echo "$i ";
}
}
// Build Next Link
if($hal < $total_pages){
$next = ($page + 1);
echo "Next->";
}
echo "
";
?>
-----------------------

sekian terimakasih...

Referensi luar negri
Saya modifikasi supaya mudah di gunakan dan di implementasikan oleh teman-teman semua

Script ini telah di test dan jalan 100% di:
- mesin pentium III 650Mhz
- ram 256mb
- server konsol server XAMPP versi 1.5.3 Beta 5