Hallo! Selamat Datang di Marketplace produk digital, Freelancer terbaik di indonesia (67478 Members, 783 Products, 5290 Topic, 12955 Comments)

Cara Membuat Fungsi Paging tanpa Datatabel di Admin Swarakalibata

Dibuat
Login Terakhir 6 Tahun lalu,
Telah Dilihat 1858 Kali
david walli Mengatakan : Sultan Account
  1. Saya sudah coba tes untuk CMS Swarakalibata V.3.4 untuk admin dan modul berita nah jika data sudah banyak loading datanya sangat lambat bahkan membuat notresponding browser, ada solusi lain untuk membuatnya lebih cepat atau membuat tabel dan paging sendiri tampa bantuan datatable?

Ada 10 Jawaban

PHPMU.COM Support
commented on 08 Jun 2017 10:28:50
  1. Gunakan fungsi paging bawaan dari swarakalibata saja mas,..
  2. seperti ini pada query :
  3. <?php
  4. $p = new Paging;
  5. $batas = 10;
  6. $posisi = $p->cariPosisi($batas);
  7. $no = $posisi+1;
  8. if ($_SESSION['leveluser']=='admin'){
  9. $tampil = mysqli_query($koneksi, "SELECT * FROM berita ORDER BY id_berita DESC LIMIT $posisi,$batas");
  10. }else{
  11. $tampil=mysqli_query($koneksi, "SELECT * FROM berita WHERE username='$_SESSION[namauser]' ORDER BY id_berita DESC LIMIT $posisi,$batas");
  12. }
  13. ?>
  14.  
  15. Kemudian di akhir table, dibawah tag </table> :
  16. <?php
  17. if ($_SESSION['leveluser']=='admin'){
  18. $jmldata = mysqli_num_rows(mysqli_query($koneksi, "SELECT * FROM berita"));
  19. }else{
  20. $jmldata = mysqli_num_rows(mysqli_query($koneksi, "SELECT * FROM berita WHERE username='$_SESSION[namauser]'"));
  21. }
  22. $jmlhalaman = $p->jumlahHalaman($jmldata, $batas);
  23. $linkHalaman = $p->navHalaman(anti_injection($_GET['halaman']), $jmlhalaman);
  24. ?>
  25.  
  26. Kemudian terakhir kita tampilkan paging :
  27. <ul class='pagination'>
  28. $linkHalaman
  29. </ul>
  30.  
  31. Pada class Paging{ } di file "Config/class_paging.php" kita ubah dikit strukturnya dan sesuaikan dengan template admin,..
  32. <?php
  33. class Paging{
  34. // Fungsi untuk mencek halaman dan posisi data
  35. function cariPosisi($batas){
  36. if(empty($_GET['halaman'])){
  37. $posisi=0;
  38. $_GET['halaman']=1;
  39. }else{
  40. $posisi = ($_GET['halaman']-1) * $batas;
  41. }
  42. return $posisi;
  43. }
  44.  
  45. // Fungsi untuk menghitung total halaman
  46. function jumlahHalaman($jmldata, $batas){
  47. $jmlhalaman = ceil($jmldata/$batas);
  48. return $jmlhalaman;
  49. }
  50.  
  51. // Fungsi untuk link halaman 1,2,3 (untuk admin)
  52. function navHalaman($halaman_aktif, $jmlhalaman){
  53. $link_halaman = "";
  54.  
  55. // Link ke halaman pertama (first) dan sebelumnya (prev)
  56. if($halaman_aktif > 1){
  57. $prev = $halaman_aktif-1;
  58. $link_halaman .= "<li><a href=$_SERVER[PHP_SELF]?module=$_GET[module]&halaman=1 class='nextprev'>Awal</a></li>
  59. <li><a href=$_SERVER[PHP_SELF]?module=$_GET[module]&halaman=$prev class='nextprev'>Kembali</a></li>";
  60. }else{
  61. $link_halaman .= "<li><a href='#'>Awal</a></li>
  62. <li><a href='#'>Kembali</a></li>";
  63. }
  64.  
  65. // Link halaman 1,2,3, ...
  66. $angka = ($halaman_aktif > 3 ? " <li><a href='#'>...</a></li>" : " ");
  67. for ($i=$halaman_aktif-2; $i<$halaman_aktif; $i++){
  68. if ($i < 1)
  69. continue;
  70. $angka .= "<li><a href=$_SERVER[PHP_SELF]?module=$_GET[module]&halaman=$i>$i</a></li>";
  71. }
  72. $angka .= " <li class='active'><a href='#'>$halaman_aktif</a></li>";
  73.  
  74. for($i=$halaman_aktif+1; $i<($halaman_aktif+3); $i++){
  75. if($i > $jmlhalaman)
  76. break;
  77. $angka .= "<li><a href=$_SERVER[PHP_SELF]?module=$_GET[module]&halaman=$i>$i</a></li>";
  78. }
  79. $angka .= ($halaman_aktif+2<$jmlhalaman ? " <li><a href='#'>...</a></li><li><a href=$_SERVER[PHP_SELF]?module=$_GET[module]&halaman=$jmlhalaman>$jmlhalaman</a><li>" : " ");
  80.  
  81. $link_halaman .= "$angka";
  82.  
  83. // Link ke halaman berikutnya (Lanjut) dan terakhir (Akhir)
  84. if($halaman_aktif < $jmlhalaman){
  85. $next = $halaman_aktif+1;
  86. $link_halaman .= " <li><a href=$_SERVER[PHP_SELF]?module=$_GET[module]&halaman=$next class='nextprev'>Lanjut</a></li>
  87. <li><a href=$_SERVER[PHP_SELF]?module=$_GET[module]&halaman=$jmlhalaman class='nextprev'>Akhir</a></li> ";
  88. }else{
  89. $link_halaman .= "<li><a href='#'>Lanjut</a></li>
  90. <li><a href='#'>Akhir</a></li>";
  91. }
  92. return $link_halaman;
  93. }
  94. }
  95. ?>
  96.  
  97. Selesai, berikut saya lampirkan dari penampakan hasil percobaan kita disini,..
Terdapat 1 File dilampirkan :
1. paging_swarakalibata.png (124 KB)
david walli
commented on 09 Jun 2017 06:40:45
  1. Ok Pak sudah Bisa, Tapi masih ada kendala ni pak..kan saya tambahin cari beritanya.tapi pas masukkan cari data datanya gk muncul apa salahnya nih pak ya. codenya dibawah pak
  2.  
  3. <?php
  4. if (empty($_SESSION['username']) AND empty($_SESSION['passuser'])){
  5. echo "<link href='style,.css' rel='stylesheet' type='text/css'>
  6. <center>Untuk mengakses modul, Anda harus login <br>";
  7. echo "<a href=../../index.php><b>LOGIN</b></a></center>";
  8. }
  9. else{
  10.  
  11. function GetCheckboxes($table, $key, $Label, $Nilai='') {
  12. $s = "select * from $table order by id_berita";
  13. $r = mysql_query($s);
  14. $_arrNilai = explode(',', $Nilai);
  15. $str = '';
  16. while ($w = mysql_fetch_array($r)) {
  17. $_ck = (array_search($w[$key], $_arrNilai) === false)? '' : 'checked';
  18. $str .= "<input type=checkbox name='".$key."[]' value='$w[$key]' $_ck>$w[$Label] ";
  19. }
  20. return $str;
  21. }
  22.  
  23. $aksi="modul/mod_berita/aksi_berita.php";
  24. switch($_GET[act]){
  25. // Tampil Berita
  26. default:
  27. echo "<h2>Berita</h2>";
  28. echo" <div class='box'><div class='left'><input type=button value='Tambah Berita' onclick=\"window.location.href='?module=berita&act=tambahberita';\"></div>
  29. <div class='right'><form method=get action='$_SERVER[PHP_SELF]'>
  30. <input type=hidden name=module value=berita>
  31. Masukkan Judul Berita : <input type=text name='kata'> <input type=submit value=Cari>
  32. </form></div></div>";
  33. if (empty($_GET['kata'])){
  34. echo "<table id='example11' class='table table-bordered table-striped'>
  35. <thead>
  36. <tr><td class='center'>no</td>
  37. <td class='left'>judul</td>
  38. <td class='left'>tgl. posting</td>
  39. <td class='center'>aksi</td>
  40. </tr></thead>";
  41.  
  42.  
  43. $p = new Paging;
  44. $batas = 10;
  45. $posisi = $p->cariPosisi($batas);
  46. $no = $posisi+1;
  47. if ($_SESSION['leveluser']=='admin'){
  48. $tampil = mysqli_query($koneksi, "SELECT * FROM berita ORDER BY id_berita DESC LIMIT $posisi,$batas");
  49. }else{
  50. $tampil=mysqli_query($koneksi, "SELECT * FROM berita WHERE username='$_SESSION[namauser]' ORDER BY id_berita DESC LIMIT $posisi,$batas");
  51. }
  52.  
  53.  
  54.  
  55. $no = $posisi+1;
  56. while($r=mysqli_fetch_array($tampil)){
  57. $tgl_posting=tgl_indo($r[TGL_LHR]);
  58. echo "<tr><td class='center' width='25'>$no</td>
  59. <td class='left'>$r[id_berita]</td>
  60. <td class='left'>$r[judul]</td>
  61. <td class='center' width='85'><a href=?module=berita&act=editberita&id=$r[id_berita]><img src='images/edit.png' border='0' title='edit' /></a>
  62. <a href=\"$aksi?module=berita&act=hapus&id=$r[id_berita]&namafile=$r[gambar]\" onClick=\"return confirm('Apakah Anda benar-benar mau menghapusnya?')\"><img src='images/del.png' border='0' title='hapus' /></a></td>
  63. </tr>";
  64. $no++;
  65. }
  66. echo "</table>";
  67.  
  68.  
  69.  
  70. if ($_SESSION['leveluser']=='admin'){
  71. $jmldata = mysqli_num_rows(mysqli_query($koneksi, "SELECT * FROM berita"));
  72. }else{
  73. $jmldata = mysqli_num_rows(mysqli_query($koneksi, "SELECT * FROM berita WHERE username='$_SESSION[namauser]'"));
  74. }
  75. $jmlhalaman = $p->jumlahHalaman($jmldata, $batas);
  76. $linkHalaman = $p->navHalaman(anti_injection($_GET['halaman']), $jmlhalaman);
  77.  
  78.  
  79.  
  80. echo "<ul class=\"pagination\"> $linkHalaman</ul>";
  81.  
  82.  
  83. break;
  84. }
  85. else{
  86. echo "<table class='list'><thead>
  87. <tr><td class='left'>no</td>
  88. <td class='left'>judul</td>
  89. <td class='left'>tgl. posting</td>
  90. <td class='center'>aksi</td>
  91. </tr></thead>";
  92.  
  93. $p = new Paging9;
  94. $batas = 10;
  95. $posisi = $p->cariPosisi($batas);
  96.  
  97. if ($_SESSION[leveluser]=='admin'){
  98. $tampil = mysqli_query("SELECT * FROM berita WHERE judul LIKE '%$_GET[kata]%' ORDER BY id_berita DESC LIMIT $posisi,$batas");
  99. }
  100. else{
  101. $tampil=mysqli_query("SELECT * FROM berita
  102. WHERE username='$_SESSION[namauser]'
  103. AND judul LIKE '%$_GET[kata]%'
  104. ORDER BY id_berita DESC LIMIT $posisi,$batas");
  105. }
  106.  
  107. $no = $posisi+1;
  108. while($r=mysqli_fetch_array($tampil)){
  109. $tgl_posting=tgl_indo($r[tanggal]);
  110. echo "<tr><td class='left'>$no</td>
  111. <td class='left'>$r[id_berita]</td>
  112. <td class='left'>$r[judul]</td>
  113. <td class='left'><a href=?module=berita&act=editberita&id=$r[id_berita]><img src='images/edit.png' border='0' title='edit' /></a>
  114. <a href='$aksi?module=berita&act=hapus&id=$r[id_berita]&namafile=$r[gambar]'><img src='images/del.png' border='0' title='hapus' /></a></td>
  115. </tr>";
  116. $no++;
  117. }
  118. echo "</table>";
  119.  
  120. if ($_SESSION[leveluser]=='admin'){
  121. $jmldata = mysqli_num_rows(mysqli_query("SELECT * FROM berita WHERE judul LIKE '%$_GET[kata]%'"));
  122. }
  123. else{
  124. $jmldata = mysqli_num_rows(mysqli_query("SELECT * FROM berita WHERE username='$_SESSION[namauser]' AND judul LIKE '%$_GET[kata]%'"));
  125. }
  126. $jmlhalaman = $p->jumlahHalaman($jmldata, $batas);
  127. $linkHalaman = $p->navHalaman(anti_injection($_GET['halaman']), $jmlhalaman);
  128.  
  129.  
  130.  
  131.  
  132.  
  133. echo "<ul class=\"pagination.\"> $linkHalaman</ul>";
  134.  
  135. break;
  136. }
  137.  
  138. }
  139.  
  140. }
  141. ?>
  142.  
Terdapat 1 File dilampirkan :
1. Screenshot_113.png (48 KB)
PHPMU.COM Support
commented on 10 Jun 2017 08:07:20
  1. Jangan ditulis ulang mas, kodingnya, cukup kondisikan pada query saja :
  2. if (isset($_POST['kata'])){
  3. if ($_SESSION['leveluser']=='admin'){
  4. $tampil = mysqli_query($koneksi, "SELECT * FROM berita WHERE judul LIKE '%$_GET[kata]%' ORDER BY id_berita DESC LIMIT $posisi,$batas");
  5. }else{
  6. $tampil=mysqli_query($koneksi, "SELECT * FROM berita WHERE username='$_SESSION[namauser]' AND judul LIKE '%$_GET[kata]%' ORDER BY id_berita DESC LIMIT $posisi,$batas");
  7. }
  8. }else{
  9. if ($_SESSION['leveluser']=='admin'){
  10. $tampil = mysqli_query($koneksi, "SELECT * FROM berita ORDER BY id_berita DESC LIMIT $posisi,$batas");
  11. }else{
  12. $tampil=mysqli_query($koneksi, "SELECT * FROM berita WHERE username='$_SESSION[namauser]' ORDER BY id_berita DESC LIMIT $posisi,$batas");
  13. }
  14. }
david walli
commented on 10 Jun 2017 09:40:38
  1. gak ngerti maksudnya pak? maksudnya posisi query yg dimana pak?
david walli
commented on 10 Jun 2017 10:15:59
  1. Pak saya sudah coba seperti ini codenya tp waktu melakukan pencarian tidak terjadi apapun.
  2. if (trim($_SESSION['leveluser'])==''){
  3. echo "<script>document.location='index.php';</script>";
  4. }else{
  5. $cek=user_akses($_GET['module'],$_SESSION['sessid']);
  6. if($cek==1 OR $_SESSION['leveluser']=='admin'){
  7.  
  8. function GetCheckboxes($table, $key, $Label, $Nilai='') {
  9. global $koneksi;
  10. $r = mysqli_query($koneksi, "SELECT * FROM $table order by nama_tag");
  11. $_arrNilai = explode(',', $Nilai);
  12. $str = '';
  13. while ($w = mysqli_fetch_array($r)) {
  14. $_ck = (array_search($w[$key], $_arrNilai) === false)? '' : 'checked';
  15. $str .= "<span style='display:block;'><input type=checkbox name='".$key."[]' value='$w[$key]' $_ck>$w[$Label] </span>";
  16. }
  17. return $str;
  18. }
  19.  
  20. $aksi="modul/mod_berita/aksi_berita.php";
  21. switch($_GET['act']){
  22. default:
  23. echo "<div class='col-xs-12'>
  24. <div class='box'>
  25. <div class='box-header'>
  26. <h3 class='box-title'>Semua Berita</h3>
  27. <a class='pull-right btn btn-primary btn-sm' href='?module=berita&act=tambahberita'>Tambahkan Data</a>
  28.  
  29. <form method=get action='$_SERVER[PHP_SELF]'>
  30. <input type=hidden name=module value=berita>
  31. Masukkan Judul Berita : <input type=text name='kata'> <input type=submit value=Cari>
  32. </form>
  33. </div>
  34.  
  35. <div class='box-body'>";
  36.  
  37. echo "<table id='example' class='table table-bordered table-striped'>
  38. <thead>
  39. <tr>
  40. <th style='width:20px'>No</th>
  41. <th>Judul Berita</th>
  42. <th>Tgl Posting</th>
  43. <th>Status</th>
  44. <th style='width:70px'>Action</th>
  45. </tr>
  46. </thead>
  47. <tbody>";
  48.  
  49. $no = 1;
  50. $p = new Paging;
  51. $batas = 10;
  52. $posisi = $p->cariPosisi($batas);
  53. $no = $posisi+1;
  54.  
  55. if (isset($_POST['kata'])){
  56. if ($_SESSION['leveluser']=='admin'){
  57. $tampil = mysqli_query($koneksi, "SELECT * FROM berita WHERE judul LIKE '%$_GET[kata]%' ORDER BY id_berita DESC LIMIT $posisi,$batas");
  58. }else{
  59. $tampil=mysqli_query($koneksi, "SELECT * FROM berita WHERE username='$_SESSION[namauser]' AND judul LIKE '%$_GET[kata]%' ORDER BY id_berita DESC LIMIT $posisi,$batas");
  60. }
  61. }else{
  62. if ($_SESSION['leveluser']=='admin'){
  63. $tampil = mysqli_query($koneksi, "SELECT * FROM berita ORDER BY id_berita DESC LIMIT $posisi,$batas");
  64. }else{
  65. $tampil=mysqli_query($koneksi, "SELECT * FROM berita WHERE username='$_SESSION[namauser]' ORDER BY id_berita DESC LIMIT $posisi,$batas");
  66. }
  67. }
  68.  
  69. while($row=mysqli_fetch_array($tampil)){
  70. $tgl_posting = tgl_indo($row['tanggal']);
  71. if ($row['status']=='Y'){ $status = "<span style='color:green'>Published</span>"; }else{ $status = "<span style='color:red'>Unpublished</span>"; }
  72. echo "<tr><td>$no</td>
  73. <td>$row[judul]</td>
  74. <td>$tgl_posting</td>
  75. <td>$status</td>
  76. <td><center>
  77. <a class='btn btn-primary btn-xs' title='Publish Data' href='?module=berita&publish=$row[id_berita]&status=$row[status]'><span class='glyphicon glyphicon-ok'></span></a>
  78. <a class='btn btn-success btn-xs' title='Edit Data' href='?module=berita&act=editberita&id=$row[id_berita]'><span class='glyphicon glyphicon-edit'></span></a>
  79. <a class='btn btn-danger btn-xs' title='Delete Data' href='?module=berita&hapus=$row[id_berita]' onclick=\"return confirm('Apa anda yakin untuk hapus Data ini?')\"><span class='glyphicon glyphicon-remove'></span></a>
  80. </center></td>
  81. </tr>";
  82. $no++;
  83. }
  84.  
  85. if (isset($_GET['hapus'])){
  86. if ($_SESSION['leveluser']=='admin'){
  87. mysqli_query($koneksi, "DELETE FROM berita where id_berita='$_GET[hapus]'");
  88. }else{
  89. mysqli_query($koneksi, "DELETE FROM berita where id_berita='$_GET[hapus]' AND username='$_SESSION[namauser]'");
  90. }
  91. echo "<script>document.location='?module=berita';</script>";
  92. }
  93.  
  94. if (isset($_GET['publish'])){
  95. if ($_GET['status']=='N'){ $publish = 'Y'; }else{ $publish = 'N'; }
  96. mysqli_query($koneksi, "UPDATE berita SET status='$publish' where id_berita='$_GET[publish]'");
  97. echo "<script>document.location='?module=berita';</script>";
  98. }
  99.  
  100. echo "</tbody>";
  101. echo "</table>";
  102.  
  103.  
  104.  
  105. if ($_SESSION['leveluser']=='admin'){
  106. $jmldata = mysqli_num_rows(mysqli_query($koneksi, "SELECT * FROM berita"));
  107. }else{
  108. $jmldata = mysqli_num_rows(mysqli_query($koneksi, "SELECT * FROM berita WHERE username='$_SESSION[namauser]'"));
  109. }
  110. $jmlhalaman = $p->jumlahHalaman($jmldata, $batas);
  111. $linkHalaman = $p->navHalaman(anti_injection($_GET['halaman']), $jmlhalaman);
  112.  
  113.  
  114.  
  115. echo "<ul class=\"pagination\"> $linkHalaman</ul>";
  116.  
PHPMU.COM Support
commented on 10 Jun 2017 10:25:34
  1. Ini saya kasih filenya saja langsung, silahkan diperhatikan penempatannya,..
Terdapat 2 File dilampirkan :
1. berita3.zip (2 KB)
2. hasil_pencarian.png (67 KB)
david walli
commented on 10 Jun 2017 10:28:37
  1. makasih banayk pak...maklum pak masih pemula..
Yakobus sutejo
commented on 01 Nov 2017 14:46:02
  1. Saya coba paging ini memang berhasil...
  2. Tetapi kenapa yang saat pencarian dan ditemukan misalnya total page 10 lalu kita melakukan pencarian ternyata masih ada lebih darib1 page mislanya menjadi 3 pages...
  3. Ketika di klik page 2 atau 3 selalu kembali ke tampilan awal menjadi 10 page seperti ketika belum melakukan pencarian?
  4.  
  5. Terima kasih
david walli
commented on 01 Nov 2017 14:54:04
  1. lihat screenshotnya mas..
Yakobus sutejo
commented on 07 Nov 2017 07:18:53
  1. Jadi pas mencari ketemu hasil misalnya 3 halaman tapi ketika diklik hal 3 malah kembali ke tampilan semula misalnya 10 halaman
Maaf, Untuk Memberikan Komentar Anda Harus Login !!!