Baca Juga :  Bagaimana Menambahkan Travel Maps Interaktif di WordPress

PHP CRUD dengan Search dan Pagination

1 1,896

Dalam tutorial ini, kita akan melihat tentang aplikasi PHP sederhana untuk membuat database, baca, update dan hapus (CRUD) operasi. Dengan operasi CRUD ini, kami juga memiliki fitur pencarian dan pagination yang terintegrasi dengannya.

Sebelumnya, kami melihat tentang CRUD dengan AJAX dan CRUD tanpa AJAX (keduanya tidak memiliki pencarian dan pagination). Nah di tutorial ini, kita langsung akan terjun ke bagian pencarian dan pagination. Kode unduhan berisi fitur operasi, pencarian dan paginasi CRUD lengkap.

Cari Data dengan Keyword menggunakan PHP dan MySQL

Kami memiliki opsi pencarian untuk mencari kolom Nama dan Kode dengan kata kunci yang diberikan yang diposkan melalui formulir pencarian. Kata kunci pencarian digunakan untuk menemukan kecocokan dengan nilai kolom yang sesuai dengan menggunakan klausa MySQL LIKE. Jika cocok ditemukan maka hasilnya akan terbaca dan ditampilkan di halaman daftar dengan pagination.

Baca Juga :  Apa itu function.php Pada Wordpress

Kode untuk form pencariannya adalah,

<form name="frmSearch" method="post" action="index.php">
	<div class="search-box">
	<p>
	<input type="text" placeholder="Name" name="search[name]" class="demoInputBox" value="<?php echo $name; ?>"	/>
	<input type="text" placeholder="Code" name="search[code]" class="demoInputBox" value="<?php echo $code; ?>"	/>
	<input type="submit" name="go" class="btnSearch" value="Search">
	<input type="reset" class="btnSearch" value="Reset" onclick="window.location='index.php'">
	</p>
	</div>
</form>

Setelah mengirimkan formulir pencarian, kami mengakses kata kunci dari skrip PHP untuk membuat kondisi pencarian untuk query pilih. Kami memiliki kasus switch untuk membuat kondisi query dengan LIKE clause. Kode itu,

<?php
	require_once("perpage.php");	
	require_once("dbcontroller.php");
	$db_handle = new DBController();
	
	$name = "";
	$code = "";	
	$queryCondition = "";
	if(!empty($_POST["search"])) {
		foreach($_POST["search"] as $k=>$v){
			if(!empty($v)) {
				$queryCases = array("name","code");
				if(in_array($k,$queryCases)) {
					if(!empty($queryCondition)) {
						$queryCondition .= " AND ";
					} else {
						$queryCondition .= " WHERE ";
					}
				}
				switch($k) {
					case "name":
						$name = $v;
						$queryCondition .= "name LIKE '" . $v . "%'";
						break;
					case "code":
						$code = $v;
						$queryCondition .= "code LIKE '" . $v . "%'";
						break;
				}
			}
		}
	}
	$orderby = " ORDER BY id desc"; 
	$sql = "SELECT * FROM toy " . $queryCondition;
	$href = 'index.php';					
		
	$perPage = 2; 
	$page = 1;
	if(isset($_POST['page']))	$page = $_POST['page'];
	$start = ($page-1)*$perPage;
	if($start < 0) $start = 0;
		
	$query =  $sql . $orderby .  " limit " . $start . "," . $perPage; 
	$result = $db_handle->runQuery($query);
	
	if(!empty($result)) $result["perpage"] = showperpage($sql, $perPage, $href);
?>

Pagination PHP dengan Menjaga Hasil Pencarian

Jika Anda memiliki hasil pencarian paginasi berdasarkan Nama atau Kode dan ingin menavigasi halaman, kondisi kueri pencarian harus dipertahankan. Jika kita memiliki link pagination untuk navigasi halaman maka akan mengarahkan ulang ke URL yang berbeda dan kondisi pencarian akan diatur ulang. Jadi, kami menggunakan tombol submit untuk navigasi halaman.

function perpage($count, $per_page = '10',$href) {
	$output = '';
	$paging_id = "link_perpage_box";
	if(!isset($_POST["page"])) $_POST["page"] = 1;
	if($per_page != 0)
	$pages  = ceil($count/$per_page);
	if($pages>1) {		
		if(($_POST["page"]-3)>0) {
			if($_POST["page"] == 1)	$output = $output . '<span id=1 class="current-page">1</span>';
			else	$output = $output . '<input type="submit" name="page" class="perpage-link" value="1" />';
		}
		if(($_POST["page"]-3)>1) $output = $output . '...';
		for($i=($_POST["page"]-2); $i<=($_POST["page"]+2); $i++)	{
			if($i<1) continue;
			if($i>$pages) break;
			if($_POST["page"] == $i)	$output = $output . '<span id='.$i.' class="current-page" >'.$i.'</span>';
			else	$output = $output . '<input type="submit" name="page" class="perpage-link" value="' . $i . '" />';
		}		
		if(($pages-($_POST["page"]+2))>1) $output = $output . '...';
		if(($pages-($_POST["page"]+2))>0) {
			if($_POST["page"] == $pages)
				$output = $output . '<span id=' . ($pages) .' class="current-page">' . ($pages) .'</span>';
			else				
				$output = $output . '<input type="submit" name="page" class="perpage-link" value="' . $pages . '" />';
		}
		
	}
	return $output;
}

MySQL Database Script

CREATE TABLE IF NOT EXISTS `toy` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `code` varchar(20) NOT NULL,
  `category` varchar(255) NOT NULL,
  `price` double NOT NULL,
  `stock_count` bigint(16) NOT NULL,
  PRIMARY KEY (`id`)
)
Demo

Get real time updates directly on you device, subscribe now.

1 Comment
  1. Ridwan says

    Gan, filenya downloadnya sudah tidak ada?

Leave A Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.