Paging Error

Ari Jm · Oct 5, 2012
minta bantuannya donk mas/mbak,
mau bikin paging buat search, tp pas page ke 2 hasil pencariannya tetap sama, trus pas di page 2 "kata kunci pencariannya" ga keluar lg, bingung salahnya dmn?

// Modul hasil pencarian berita 
elseif ($_GET['module']=='hasilcari'){
		  echo "<div id='content'>          
               <div id='content-detail'>";
  echo "<span class=judul_head>&#187; <b>Hasil Pencarian</b></span><br />";

  $p      = new PagingCari;
  $batas  = 10;
  $posisi = $p->cariPosisi($batas);

  // menghilangkan spasi di kiri dan kanannya
  $kata = trim($_POST['kata']);
  // mencegah XSS
  $kata = htmlentities(htmlspecialchars($kata), ENT_QUOTES);

  // pisahkan kata per kalimat lalu hitung jumlah kata
  $pisah_kata = explode(" ",$kata);
  $jml_katakan = (integer)count($pisah_kata);
  $jml_kata = $jml_katakan-1;

  $cari = "SELECT * FROM berita WHERE " ;
    for ($i=0; $i<=$jml_kata; $i++){
      $cari .= "judul OR isi_berita LIKE '%$pisah_kata[$i]%'";
      if ($i < $jml_kata ){
        $cari .= " OR ";
      }
    }
  $cari .= " ORDER BY id_berita DESC LIMIT $posisi,$batas";
  $hasil  = mysql_query($cari);
  $ketemu = mysql_num_rows($hasil);

  if ($ketemu > 0){
    echo "<p>Ditemukan <b>$ketemu</b> berita dengan kata <font style='background-color:#00FFFF'><b>$kata</b></font> : </p>"; 
    //echo "<p>Ditemukan <b>$ketemu</b> berita dengan ...</p>"; 
    while($t=mysql_fetch_array($hasil)){
		echo "<table><tr><td><span class=judul><a href=news-$t[id_berita]-$t[judul_seo].html>$t[judul]</a></span><br />";

      // Tampilkan hanya sebagian isi berita
      $isi_berita = htmlentities(strip_tags($t[isi_berita])); // membuat paragraf pada isi berita dan mengabaikan tag html
      $isi = substr($isi_berita,0,250); // ambil sebanyak 150 karakter
      $isi = substr($isi_berita,0,strrpos($isi," ")); // potong per spasi kalimat

      echo "$isi ... <a href=news-$t[id_berita]-$t[judul_seo].html>Selengkapnya</a>
            <br /></td></tr>
            </table><hr color=#CCC noshade=noshade />";
    } 

  $jmldata     = mysql_num_rows(mysql_query("SELECT * FROM berita"));
  $jmlhalaman  = $p->jumlahHalaman($jmldata, $batas);
  $linkHalaman = $p->navHalaman($_GET[halpencarian], $jmlhalaman);

  echo "<div class='pages'> $linkHalaman </div><br />";
                                                         
  }
  else{
    echo "<p></p><p align=center>Tidak ditemukan berita dengan kata <b>$kata</b></p>";
  }
  echo "</div>
    </div>";            
}


Berikut class_paging.php nya

// class paging untuk halaman pencarian (menampilkan semua pencarian)
class PagingCari{
// Fungsi untuk mencek halaman dan posisi data
function cariPosisi($batas){
if(empty($_GET['halpencarian'])){
$posisi=0;
$_GET['halpencarian']=1;
}
else{
$posisi = ($_GET['halpencarian']-1) * $batas;
}
return $posisi;
}

// Fungsi untuk menghitung total halaman
function jumlahHalaman($jmldata, $batas){
$jmlhalaman = ceil($jmldata/$batas);
return $jmlhalaman;
}

// Fungsi untuk link halaman 1,2,3
function navHalaman($halaman_aktif, $jmlhalaman){
$link_halaman = "";

// Link ke halaman pertama (first) dan sebelumnya (prev)
if($halaman_aktif > 1){
$prev = $halaman_aktif-1;
$link_halaman .= "<a href=halpencarian-1.html class='nextprev'><< First</a>
                  <a href=halpencarian-$prev.html class='nextprev'>< Prev</a>";
}
else{
$link_halaman .= "<span class='nextprev'><< First</span><span class='nextprev'>< Prev </span> ";
}

// Link halaman 1,2,3, …
$angka = ($halaman_aktif > 3 ? "<span class='nextprev'>...</span>" : " ");
for ($i=$halaman_aktif-2; $i<$halaman_aktif; $i++){
if ($i < 1)
continue;
$angka .= "<a href=halpencarian-$i.html>$i</a>  ";
}
$angka .= " <span class='current'><b>$halaman_aktif</b></span>";

for($i=$halaman_aktif+1; $i<($halaman_aktif+3); $i++){
if($i > $jmlhalaman)
break;
$angka .= "<a href=halpencarian-$i.html>$i</a>  ";
}
$angka .= ($halaman_aktif+2<$jmlhalaman ? "<span class='nextprev'>...</span><a href=halpencarian-$jmlhalaman.html>$jmlhalaman</a> " : " ");

$link_halaman .= "$angka";

// Link ke halaman berikutnya (Next) dan terakhir (Last)
if($halaman_aktif < $jmlhalaman){
$next = $halaman_aktif+1;
$link_halaman .= " <a href=halpencarian-$next.html class='nextprev'>Next ></a>
<a href=halpencarian-$jmlhalaman.html class='nextprev'>Last >></a> ";
}
else{
$link_halaman .= " <span class='nextprev'>Next ></span> <span class='nextprev'> Last >></span>";
}
return $link_halaman;
}
}
Silahkan login untuk menjawab!
0
Loading...
Ellyx Christian · Oct 5, 2012 · 0 Suka · 0 Tidak Suka
jika ingin paging hasil sebuah search maka form yang digunakan harus menggunakan method get, dan halaman paging tidak perlu menggunakan url rewriting. Misal
<form action="" method="get">
Search <input name="kata" type="text"/> <input type="submit" name="hasilsearch" value="Search"/>
</form>

<!-- maka url paging akan seperti -->
<a href="halaman.php?page=1&kata=<?php echo urlencode($_GET['kata'])?>">1</a>
<a href="halaman.php?page=2&kata=<?php echo urlencode($_GET['kata'])?>">2</a>
0
Loading...
Ari Jm · Oct 5, 2012 · 0 Suka · 0 Tidak Suka
maaf mas, maksudnya bkn gitu, ini buat cms lokomedia, makanya pake url rewriting. awalnya ga ada paging di halaman pencarian, makanya mau sy tambah paging, tp gagal terus, maklum masih nubie :)
0
Loading...
Ellyx Christian · Oct 7, 2012 · 0 Suka · 0 Tidak Suka
ya mau tida mau, kamu jangan pake class itu, karena kalau di ubah, maka akan berpengaruh pada kode yang lain. Jadi pake saja yang manual seperti di http://www.myphptutorials.com/tutorials/31/membuat-pagination