Pada artikel sebelumnya kita telah membahas dua halaman pertama dari
aplikasi buku tamu. Sekarang kita sempurnakan aplikasi tersebut dengan
menampilkan daftar dari para tamu yang telah memberikan nama dan
komentarnya.
Untuk menyegarkan ingatan Anda pada halaman terima kasih terdapat link sebagai berikut:
<a href=”lihat_tamu.php”> Klik di sini </a> untuk melihat daftar para pengisi buku tamu.
File
lihat_tamu.php inilah yang nantinya menampilkan daftar para pengisi
buku tamu yang disajikan dalam bentuk tabel. Skrip selengkapnya dari
file lihat_tamu.php adalah sebagai berikut:
<HTML>
<HEAD>
<TITLE> Buku Tamu </TITLE>
</HEAD>
<BODY>
<?php
$host = "localhost";
$user = "root";
$passwd = "root";
$conn = @mysql_connect ($host, $user, $passwd)
or die ("Koneksi Gagal: " . mysql_error());
mysql_select_db("data_kontak",$conn);
$strSQL = "Select * from tbl_tamu";
$qry= @mysql_query($strSQL,$conn)
or die ("Query salah: " . mysql_error());
$jml = mysql_num_rows($qry);
echo "Jumlah pengisi = $jml <br />";
?>
<TABLE BORDER=1>
<TR>
<TD BGCOLOR=#f32142> Nama </TD>
<TD BGCOLOR=#f32142> Email </TD>
<TD BGCOLOR=#f32142> Komentar </TD><TD BGCOLOR=#f32142> Waktu </TD>
</TR>
<?php
while ($row = mysql_fetch_array ($qry)) {
echo "<TR>";
echo "<TD BGCOLOR=#f7efde>" . $row["nama"] . "</TD>";
echo "<TD BGCOLOR=#f7efde>" . $row["email"] . "</TD>";
echo "<TD BGCOLOR=#f7efde>" . $row["komentar"] . "</TD>";
echo "<TD BGCOLOR=#f7efde>" . $row["waktu"] . "</TD>";
echo "</TR>";
}
?>
</TABLE>
</BODY>
</HTML>
Nama-nama
yang tertera di sana hanya fiktif saja, jadi apabila ternyata ada yang
memiliki nama dan email yang sama, itu hanya kebetulan belaka.
Nah,
seandainya situs tersebut merupakan situs yang ramai oleh pengunjung
dan pengisi buku tamunya banyak, maka menampilkan daftar tamu seperti
skrip di atas tentu kurang baik karena halaman tersebut akan menjadi
sangat panjang.
Alternatif yang digunakan adalah menampilkan
sejumlah record tertentu per halaman dan di bagian bawah halaman
terdapat link untuk menuju ke halaman berikutnya atau sebelumnya.
Kira-kira seperti hasil search di Google itu lho. Untuk membuat bentuk
halaman seperti itu, berikut akan diberikan salah satu contoh skrip
alternatifnya. Gantilah isi skrip file lihat_tamu.php dengan skrip
sebagai berikut:
<HTML>
<HEAD>
<TITLE> Daftar Tamu </TITLE>
</HEAD>
<BODY>
<?php
$host = "localhost";
$user = "root";
$passwd = "root";
$conn = @mysql_connect ($host,$user, $passwd)
or die ("Koneksi Gagal: " . mysql_error());
mysql_select_db("data_kontak",$conn);
$hal = $_REQUEST['hal'];
$batas = ($hal - 1) * 5;
$strSQL1 = "Select * from tbl_tamu limit $batas,5";
$strSQL2 = "Select * from tbl_tamu";
$qry = @mysql_query($strSQL1,$conn)
or die ("Query salah: " . mysql_error());
$tot = @mysql_query($strSQL2,$conn)
or die ("Query salah: " . mysql_error());
$jml = mysql_num_rows($tot);
$kel = $jml/5;
if ($kel==floor($jml/5)){
$page = $kel;
} else {
$page = floor($jml/5)+1;
}
$pct = 100/($page+4);
echo "Jumlah pengisi = $jml <br />";
echo "Jumlah halaman = $page <br />";
echo "<HR>";
?>
<TABLE BORDER=1>
<TR>
<TD BGCOLOR=#f32142> Nama </TD>
<TD BGCOLOR=#f32142> Email </TD>
<TD BGCOLOR=#f32142> Komentar </TD><TD BGCOLOR=#f32142> Waktu </TD>
</TR>
<?php
while ($row = mysql_fetch_array ($qry)) {
echo "<TR>";
echo "<TD BGCOLOR=#f7efde>" . $row["nama"] . "</TD>";
echo "<TD BGCOLOR=#f7efde>" . $row["email"] . "</TD>";
echo
"<TD BGCOLOR=#f7efde>" . $row["komentar"] . "</TD>"; echo
"<TD BGCOLOR=#f7efde>" . $row["waktu"] . "</TD>";
echo "</TR>";
}
?>
</TABLE>
<hr style="width:90%; size:2px; color:red;">
<TABLE BORDER=0>
<TR>
<?php
$lebar=$pct*2;
$prev=$hal-1;
$next=$hal+1;
echo "<TD WIDTH=$lebar"."%>";
if ($hal!=1) {
echo "<A href='lihat_tamu.php?hal=$prev'> <<Sebelum </A>";
} else {
echo "<<Sebelum";
}
echo "</TD>";
for ($i=1;$i<=$page;$i++) {
if ($i==$hal) {
echo "<TD WIDTH=$pct"."%>";
echo "$i";
echo "</TD>";
} else {
echo "<TD WIDTH=$pct"."%>";
echo "<A href='lihat_tamu.php?hal=$i'> $i </A>";
echo "</TD>";
}
}
echo "<TD WIDTH=$lebar"."%>";
if ($hal!=$page) {
echo "<A href='lihat_tamu.php?hal=$next'> Setelah>> </A>";
} else {
echo "Setelah>>";
}
echo "</TD>";
?>
</TR>
</TABLE>
</BODY>
</HTML>
Contoh
skrip ini menggunakan query string di dalam menentukan halaman mana
yang aktif saat itu. Setiap link untuk menuju ke suatu halaman tertentu
akan memiliki bentuk seperti ini:
<A href=”table.php?hal=$i”>
Variabel $i akan berisi nomor halaman yang dituju, selamat mencoba untuk melihat hasilnya ;D.