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
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
makasih sangat membantu
Mas itu gimana kalau misalnya ditambah coding pagging, kan kalau data melebihi 500 kan gak mungkin di Tarok dalam satu halaman?,
gaes kalo misalnya pengurutannya tidak di tampilkan gimana caranya
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 ??
izin sedot om.. lagi butuh ini.. :D
ngan kalau mau prin hasil dari pencarian bagaimana ya
terima kasih sangat membantu sekali
mas gmna cara menampilkan data detail berdasarkan id atau kode??
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?
konsepnya sama, intinya perbedaannya pada query saja di bagian where
Terus, untuk supaya user bisa sorting data sesuai dengan keinginan user dengan memilih judul kolom tabel pada hasil pencarian, itu gimana om?