membuat pagging di multisearch

ibnumei · Sep 3, 2016
permisi gan, mau nannya soal php. Jadi gini saya mengaplikasikan teknik search dengan multi keyword. Tapi ternyata saat hasil search itu saya buat fungsi penghalaman, eror saat memasuki halaman ke 2 dan selanjutnya. hanya berhasi di halaman pertama. browsing di google katanya karna variabel pencarian tidak ikut ke halaman selanjutnya..kira kira bagaimana solusi nya agar hasil pencarian dapat dibuat halaman ya? Terima kasih...skrip php search multi keyword ada di bawah *YANG ATAS FILE PHP PENCARIAN, YANG BAWAH FILE FORM HTML*

<?php
 
mysql_connect("dbhost", "dbuser", "dbpassword");
mysql_select_db("dbname");
 
$bagianWhere = "";
 
if (isset($_POST['nimCat']))
{
   $nim = $_POST['nim'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "nim = '$nim'";
   }
}

if (isset($_POST['namaCat']))
{
   $namamhs = $_POST['nama'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "namamhs LIKE '%$namamhs%'";
   }
   else
  {
        $bagianWhere .= " AND namamhs LIKE '%$namamhs%'";
   }
}
 
if (isset($_POST['alamatCat']))
{
   $alamat = $_POST['alamat'];
   if (empty($bagianWhere))
   {
       $bagianWhere .= "alamat LIKE '%$alamat%'";
   }
  else
  {
        $bagianWhere .= " AND alamat LIKE '%$alamat%'";
  }
}
 
if (isset($_POST['sexCat']))
{
   $sex = $_POST['sex'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "sex = '$sex'";
   }
   else
   {
        $bagianWhere .= " AND sex = '$sex'";
   }
}
 
$query = "SELECT * FROM mhs WHERE ".$bagianWhere;
$hasil = mysql_query($query);
echo "<table border='1'>";
echo "<tr><td>NIM</td><td>Nama Mahasiswa</td><td>Alamat</td><td>Jenis Kelamin</td></tr>";
while ($data = mysql_fetch_array($hasil))
{
   echo "<tr><td>".$data['nim']."</td><td>".$data['namamhs']."</td><td>".$data['alamat']."</td><td>".$data['sex']."</td></tr>";
}
echo "</table>";
?>
<h1>Cari Data Mahasiswa</h1>
 
<p>Pilih kategori pencarian</p>
 
<form method="post" action="proses.php">
<table>
   <tr><td><input type="checkbox" name="nimCat"> NIM</td><td><input type="text" name="nim"></td></tr>
   <tr><td><input type="checkbox" name="namaCat"> Nama Mahasiswa</td><td><input type="text" name="nama"></td></tr>
   <tr><td><input type="checkbox" name="alamatCat"> Alamat</td><td><input type="text" name="alamat"></td></tr>
   <tr><td><input type="checkbox" name="sexCat"> Jenis Kelamin</td><td><input type="radio" name="sex" value="L"> Laki-Laki <input type="radio" name="sex" value="P"> Perempuan</td></tr>
   <tr><td></td><td><input type="submit" name="submit" value="Submit"></td></tr>
</table>
</form>
Silahkan login untuk menjawab!
0
Loading...
Ellyx Christian · Sep 8, 2016 · 0 Suka · 0 Tidak Suka
untuk pencarian dengan pagination ubah method form dari post manjadi get
seperti:
<h1>Cari Data Mahasiswa</h1>
 
<p>Pilih kategori pencarian</p>
 
<form method="get" action="proses.php"> <!-- form dengan get-->
<table>
   <tr><td><input type="checkbox" name="nimCat"> NIM</td><td><input type="text" name="nim"></td></tr>
   <tr><td><input type="checkbox" name="namaCat"> Nama Mahasiswa</td><td><input type="text" name="nama"></td></tr>
   <tr><td><input type="checkbox" name="alamatCat"> Alamat</td><td><input type="text" name="alamat"></td></tr>
   <tr><td><input type="checkbox" name="sexCat"> Jenis Kelamin</td><td><input type="radio" name="sex" value="L"> Laki-Laki <input type="radio" name="sex" value="P"> Perempuan</td></tr>
   <tr><td></td><td><input type="submit" name="submit" value="Submit"></td></tr>
</table>
</form>
<?php
 
mysql_connect("dbhost", "dbuser", "dbpassword");
mysql_select_db("dbname");
 
$bagianWhere = "";
 
if (isset($_GET['nimCat']))
{
   $nim = $_GET['nim'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "nim = '$nim'";
   }
}
 
if (isset($_GET['namaCat']))
{
   $namamhs = $_GET['nama'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "namamhs LIKE '%$namamhs%'";
   }
   else
  {
        $bagianWhere .= " AND namamhs LIKE '%$namamhs%'";
   }
}
 
if (isset($_GET['alamatCat']))
{
   $alamat = $_GET['alamat'];
   if (empty($bagianWhere))
   {
       $bagianWhere .= "alamat LIKE '%$alamat%'";
   }
  else
  {
        $bagianWhere .= " AND alamat LIKE '%$alamat%'";
  }
}
 
if (isset($_GET['sexCat']))
{
   $sex = $_GET['sex'];
   if (empty($bagianWhere))
   {
        $bagianWhere .= "sex = '$sex'";
   }
   else
   {
        $bagianWhere .= " AND sex = '$sex'";
   }
}
 
$query = "SELECT * FROM mhs WHERE ".$bagianWhere;
$hasil = mysql_query($query);
echo "<table border='1'>";
echo "<tr><td>NIM</td><td>Nama Mahasiswa</td><td>Alamat</td><td>Jenis Kelamin</td></tr>";
while ($data = mysql_fetch_array($hasil))
{
   echo "<tr><td>".$data['nim']."</td><td>".$data['namamhs']."</td><td>".$data['alamat']."</td><td>".$data['sex']."</td></tr>";
}
echo "</table>";
?>
untuk bagian pagination tambahkan seperti ini:
$searchParams = $_GET;
unset($searchParams['page']);
// sesuaikan dengan kode yg telah ada
$url = 'search.php?'.http_build_query($searchParams);
echo '<a href="'.$url.'&page=1">1</a>';
echo '<a href="'.$url.'&page=2">2</a>';