MENERAPKAN PAGING PADA SEARCHING
Ketika
menerapkan teknik paging pada aplikasi pencarian data atau menampilkan data
berdasarkan kategori tertentu, ternyata paging tidak berfungsi sebagaimana
mestinya, terutama ketika berada dihalaman 2 dan seterusnya. Hal ini disebabkan
variabel yang dicari tidak terbawa ketika berada dihalaman 2. Jadi, solusinya
cukup sederhana, yaitu menyertakan variabel yang dicari ke bagian link yang
menuju ke halaman 2 dan seterusnya. Intinya ada pada bagian :
Echo “<a href=$file?halaman=$i>$i</a>
? “;
Ubahlah
menjadi :
Echo “<a
href=$file?halaman=$i&nama=$nama$oke=$oke>$i</a> ? “;
Oke
sekarang kita lanjut untuk membuat skrip menerapkan paging pada searching. Beri
nama skrip ini paging_2.php
<form method=get action=paging_2.php>
Isikan Nama : <input type=text name="nama">
<input type=submit name=oke value=Cari>
</form>
<?php
mysql_connect("localhost","root","");
mysql_select_db("paging");
$oke=$_GET['oke'];
if ($oke=='Cari'){
$batas=5;
$halaman=$_GET['halaman'];
if(empty($halaman)){
$posisi=0;
$halaman=1;
}
else{
$posisi = ($halaman-1) * $batas;
}
$nama=$_GET['nama'];
$tampil="select * from anggota where nama like '%$nama%' limit $posisi,$batas";
$hasil=mysql_query($tampil);
$jumlah=mysql_num_rows($hasil);
if ($jumlah > 0){
echo "<table border=1>
<tr><th>No</th><th>Nama</th><th>Alamat</th></tr>";
$no=$posisi+1;
while ($data=mysql_fetch_array($hasil)){
echo "<tr><td>$no</td><td>$data[nama]</td><td>$data[alamat]</td></tr>";
$no++;
}
echo "</table>";
echo "<br>Halaman : ";
$file="paging_2.php";
$tampil2="select * from anggota where nama like '%$nama%'";
$hasil2=mysql_query($tampil2);
$jmldata=mysql_num_rows($hasil2);
$jmlhalaman=ceil($jmldata/$batas);
for($i=1;$i<=$jmlhalaman;$i++)
if ($i != $halaman)
{
echo " <a href=$file?halaman=$i&nama=$nama&oke=$oke>$i</A> | ";
}
else
{
echo " <b>$i</b> | ";
}
echo "<p>Ditemukan <b>$jmldata</b> orang yang bernama <b>$nama</b></p>";
}
else{
echo "Tidak ditemukan data yang bernama <b>$nama</b>";
}
}
?>
Isikan Nama : <input type=text name="nama">
<input type=submit name=oke value=Cari>
</form>
<?php
mysql_connect("localhost","root","");
mysql_select_db("paging");
$oke=$_GET['oke'];
if ($oke=='Cari'){
$batas=5;
$halaman=$_GET['halaman'];
if(empty($halaman)){
$posisi=0;
$halaman=1;
}
else{
$posisi = ($halaman-1) * $batas;
}
$nama=$_GET['nama'];
$tampil="select * from anggota where nama like '%$nama%' limit $posisi,$batas";
$hasil=mysql_query($tampil);
$jumlah=mysql_num_rows($hasil);
if ($jumlah > 0){
echo "<table border=1>
<tr><th>No</th><th>Nama</th><th>Alamat</th></tr>";
$no=$posisi+1;
while ($data=mysql_fetch_array($hasil)){
echo "<tr><td>$no</td><td>$data[nama]</td><td>$data[alamat]</td></tr>";
$no++;
}
echo "</table>";
echo "<br>Halaman : ";
$file="paging_2.php";
$tampil2="select * from anggota where nama like '%$nama%'";
$hasil2=mysql_query($tampil2);
$jmldata=mysql_num_rows($hasil2);
$jmlhalaman=ceil($jmldata/$batas);
for($i=1;$i<=$jmlhalaman;$i++)
if ($i != $halaman)
{
echo " <a href=$file?halaman=$i&nama=$nama&oke=$oke>$i</A> | ";
}
else
{
echo " <b>$i</b> | ";
}
echo "<p>Ditemukan <b>$jmldata</b> orang yang bernama <b>$nama</b></p>";
}
else{
echo "Tidak ditemukan data yang bernama <b>$nama</b>";
}
}
?>