a

Tuesday 28 February 2012

Membuat Buku Tamu Dengan PHP (bagian 2)

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.

No comments:

Post a Comment