Dalam tutorial kali ini, saya akan meneruskan materi kemarin. Jika dalam tutorial sebelumnya pembahasan fokus pada cara menampilkan data, maka sekarang kita akan membahas dua hal yang masing berhubungan dengan menampilkan data. Dua hal tersebut adalah Pengurutan (Sorting) dan Pencarian (Searching). Bagi anda yang belum mambaca panduan sebelumnya, silahkan membaca terlebih dahulu karena database dan skrip koneksi menggunakan script yang sama. Untuk membuat pencarian dan pengurutan, file utama cuma satu yaitu mahasiswa2.php. Jika anda ingin mencoba code di panduan ini, beri nama mahasiswa2.php. Hasil pencarian dan pengurutan tetap berada di mahasiswa2.php.

Untuk lebih memahami code, tekankan pada kode yang di highlight karena logika utama ada disitu.

Pengurutan

Untuk melakukan pengurutan, user cukup mengklik header dari kolom tabel. Dalam kasus ini, user bisa mengurutkan ascending atau descending saat mengklik header kolom nim atau kolom nama. Pengurutan bersifat toggle, artinya jika klik pertama diurutkan ascending maka saat header kolom tersebut di klik lagi maka data akan diurutkan secara descending.


<h2>Pengurutan</h2>
		<table border="1" width="500px">			

<?php
require_once('koneksi.php');
$query1="select * from mahasiswa order by nim ";

$pola='asc';
$polabaru='asc';
if(isset($_GET['orderby'])){
	$orderby=$_GET['orderby'];
	$pola=$_GET['pola'];
	
	$query1="SELECT * FROM  mahasiswa order by $orderby $pola ";
	if($pola=='asc'){
		$polabaru='desc';
		
	}else{
		$polabaru='asc';
	}
}
?>
<th>
				<td><a href='mahasiswa2.php?orderby=nim&pola=<?=$polabaru;?>'>Nim</a></td>
				<td><a href='mahasiswa2.php?orderby=nama&pola=<?=$polabaru;?>'>Nama</a></td>
				<td>IPK</td><td>Jurusan</a></td>
</th>
				
<?php
//query database 
$result=mysql_query($query1) or die(mysql_error());
$no=1; //penomoran 


while($rows=mysql_fetch_object($result)){
			?>
			<tr>
				<td><?php echo $no
				?></td>
				<td><?php		echo $rows -> nim;?></td>
				<td><?php		echo $rows -> nama;?></td>
				<td align='right'><?php		echo $rows -> ipk;?></td>
				<td><?php		echo $rows -> jurusan;?></td>
			</tr>
			<?php
$no++;
}?>
		</table>	

Output dari hasil pengurutan data berdasarkan nama

hasil pengurutan berdasarkan nama

Pencarian

Untuk melakukan pencarian hal yang perlu diperhatikan pada clause where di script sqlnya. Untuk contoh nanti, user bisa melakukan pencarian berdasarkan nim atau nama. potongan kodenya sebagai berikut

h2>Pencarian Data</h2>
		<form action='mahasiswa2.php'method="POST">
	<input type='text' value='' name='qcari'>
	<input type='submit' value='cari'
	 ><a href='mahasiswa2.php' >All</a>
</form>

		<table border="1" width="500px">
			<th><td>Nim</a></td><td>Nama</td><td>IPK</td><td>Jurusan</td></th>

<?php
require_once('koneksi.php');
$query1="select * from mahasiswa ";


if(isset($_POST['qcari'])){
	$qcari=$_POST['qcari'];
	$query1="SELECT * FROM  mahasiswa 
	where nim like '%$qcari%'
	or nama like '%$qcari%'  ";
}

$result=mysql_query($query1) or die(mysql_error());
$no=1; //penomoran 
while($rows=mysql_fetch_object($result)){
			?>
			<tr>
				<td><?php echo $no
				?></td>
				<td><?php		echo $rows -> nim;?></td>
				<td><?php		echo $rows -> nama;?></td>
				<td align='right'><?php		echo $rows -> ipk;?></td>
				<td><?php		echo $rows -> jurusan;?></td>
			</tr>
			<?php
$no++;
}?>
		</table>	

Tampilan dari program pencarian

Jika anda ingin mencobanya sendiri, silahkan download source codenya disini

By Candra Adi Putra

Candra Adi Putra S.Kom adalah Alumni STMIK AKAKOM Yogyakarta. hubungi saya di candraadiputra (at) gmail (dot) com

11 thoughts on “Sorting dan Searching data Tabel PHP MySQL”
  1. Mas itu gimana kalau misalnya ditambah coding pagging, kan kalau data melebihi 500 kan gak mungkin di Tarok dalam satu halaman?,

  2. Om kalo misalnya mau di cari berdasarkan jurusan, nah si jurusan nya ada 2 jurusan pilihan 1 sma jurusan pilhan 2, jdi masing” tampilnya, klo pngen berdasarkan jurusan 1 yg tmpil cmn berdasarkan jurusan 1 klo mau brdasarkan jurusan 2 yg tmpil brdasarkan jurusan 2 itu gmna om ??

  3. Om, kalo yg searching tapi formnya ada banyak tipenya gimana om? Maksudnya yg gak cuma tipe text aja, tapi juga ditambah semacam combobox gitu…

    Itu gimana om ya?

    1. Terus, untuk supaya user bisa sorting data sesuai dengan keinginan user dengan memilih judul kolom tabel pada hasil pencarian, itu gimana om?

Leave a Reply

Your email address will not be published. Required fields are marked *