Halaman

Jumat, 08 April 2011

Menerapkan Searching pada Paging

JIka berbicara dengan paging, pasti berhubungan erat dengan menampilkan data yang begitu banyak. Ketika programmer ingin membuat paging pada fasilitas searching, dikarenakan data yang ditampilkan ketika pencarian menghasilkan data yang begitu banyak juga. Maka pembuatan paging pada searching mempunyai perbedaan pada beberapa baris, dibandingkan dengan pembuatan paging pada artikel-artikel sebelumnya.
Jika mengikuti cara pada pembuatan paging secara sederhana, maka fungsi paging tidak akan berfungsi sebagaimana mestinya, terutama ketika berada pada halaman 2 dan seterusnya. Hal ini disebabkan, variabel yang dicari tidak terbawa ketika berada di halaman 2. Jadi, solusinya cukup sederhana, yaitu menyertakan variabel yang dicari ke bagian link yang menuju ke halaman 2 dan seterusnya. Intinya terdapat pada bagian :

echo "<a href=$_SERVER[PHP_SELF]?halaman=$i> $i </a>"; 

Diubah menjadi :

echo "<a href = $file?halaman=$i?&nama=$nama?cari=$cari>$i</a> |";

Untuk lebih jelasnya perhatikan Source code berikut :

<center><form method="get" action="searchPaging.php">
        Isikan nama : <input type="text" name="nama">
        <input type="submit" name="cari" value="Find">
    </form></center>

<?php
$cari = $_GET['cari'];
if ($cari == 'Find') {
    mysql_connect("localhost", "root", "root");
    mysql_select_db("dbpesantren");

    // langkah 1
    $batas = 5;
    $halaman = $_GET['halaman'];
    if (empty($halaman)) {
        $posisi = 0;
        $halaman = 1;
    } else {
        $halaman = ($halaman - 1) * $batas;
    }

//        langkah 2
    $nama = $_GET['nama'];
    $tampil = mysql_query("select * from MASTER_SANTRI where NAMA_SANTRI like '%$nama%' LIMIT $posisi, $batas");
    $jumlah = mysql_num_rows($tampil);

    if ($jumlah > 0) {
        echo"<center><table width='300' border='1' cellpadding='4' cellspacing='1'><tr><th>NO</<th><th>NIS</th><th>NAMA</th></tr>";
        $no = $posisi + 1;
        while ($data = mysql_fetch_array($tampil)) {
            echo"<tr><td>$no</td>
                    <td>$data[NOMOR_INDUK_SANTRI]</td>
                    <td>$data[NAMA_SANTRI]</td></tr>";
            $no++;
        }
        echo "</table></center>";

//        langkah 3

        $tampil2 = mysql_query("select * from MASTER_SANTRI where NAMA_SANTRI like '%$nama%' ");
        $jumlahData = mysql_num_rows($tampil2);
        $jmlHalaman = ceil($jumlahData / $batas);
        echo "<Center>Halaman : ";
        $file = "searchPaging.php";
        for ($i = 0; $i <= $jmlHalaman; $i++) {
            if ($i != $halaman) {
                echo "<a href = $file?halaman=$i?&nama=$nama?cari=$cari>$i</a> |";
            }else{
                echo "<b>$i</b>";
            }            
        }
        echo "<p align=center>Ditemukan <b>$jumlahData</b> orang dengan nama $nama</p>";
    }else {
        echo "<center>Data yang anda cari tidak ada</center>";
    }
}
?>


Jika dijalankan maka tampilannya kurang lebih akan seperti berikut…