Membuat aplikasi data mahasiswa dengan PHP - Bagian 3

form/formulir input data mahasiswaProses tahap awal dari membuat database, tabel, membuat formulir input data mahasiswa, proses simpan dan upload photo mahasiswa sudah dilakukan pada artikel Membuat aplikasi data mahasiswa dengan PHP - Bagian 1 dan Bagian 2, sekarang membuat laporan hasil input data mahasiswa. Laporan ini akan dibuat menghubungkan kebeberapa bagian yaitu pencarian data mahasiswa, delete/menghapus data mahasiswa dan mengupdate data mahasiswa. Silahkan menyimak tahapan lanjutan berikut ini.

Membuat laporan data mahasiswa

Laporan akan saya buat dengan susunan tabel yang menampilkan seluruh data mahasiswa. Silahkan lihat kode berikut ini :

<?php
include "koneksi.php";
?>
<html>
<head>
<title>Laporan Data Mahasiswa</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h2 align="center">Data Mahasiswa</h2>
<form action="" method="get" name="FCari" id="FCari">
  Cari NIM/Nama 
    <input name="txtcari" type="text" id="txtcari" size="20" maxlength="30" value="<?php echo $_GET['txtcari']?>">
  <input type="submit" name="Submit" value="Cari">
</form>
<form name="FLaporan" method="post" action="delete-banyak.php" onSubmit="return confirm('Hapus data terpilih?')">
<table width="100%" border="1" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td align="center">&nbsp;</td>
    <td>NIM</td>
    <td>Nama</td>
    <td>Tempat Lahir</td>
    <td align="center">Tanggal Lahir</td>
    <td align="center">Jenis Kelamin</td>
    <td>Alamat</td>
    <td align="center">Photo</td>
    <td align="center">Koreksi</td>
    <td align="center">Hapus</td>
  </tr>
<?php
  if(!empty($_GET['txtcari'])) 
  {
     $myquery="select nim,nama,tempat_lahir, DATE_FORMAT(tanggal_lahir, '%d-%m-%Y') as tanggal_lahir, jenis_kelamin,alamat, photo from tb_mahasiswa where nim='".$_GET['txtcari']."' or nama LIKE '%".$_GET['txtcari']."%'";
  }
  else
  {
     $myquery="select nim,nama,tempat_lahir, DATE_FORMAT(tanggal_lahir, '%d-%m-%Y') as tanggal_lahir, jenis_kelamin,alamat, photo from tb_mahasiswa";
  }	
  $daftarsiswa=mysql_query($myquery) or die (mysql_error());
  while($dataku=mysql_fetch_object($daftarsiswa))
  {
?>
  <tr>
    <td align="center">
    <input type="checkbox" name="item[]" id="item[]" value="<?php echo $dataku->nim?>" /></td>
    <td><?php echo  $dataku->nim?></td>
    <td><?php echo  $dataku->nama?></td>
    <td><?php echo  $dataku->tempat_lahir?></td>
    <td align="center"><?php echo  $dataku->tanggal_lahir?></td>
    <td align="center"><?php echo  $dataku->jenis_kelamin?></td>
    <td><?php echo  $dataku->alamat?></td>
    <td align="center"><img src="<?php echo  $dataku->photo?>" alt="<?php echo  $dataku->nama?>" width="50" /></td>
    <td align="center"><a href="koreksi-data-mahasiswa.php?nim=<?php echo  $dataku->nim?>">Koreksi</a></td>
    <td align="center"><a href="hapus-data-mahasiswa.php?nim=<?php echo  $dataku->nim?>">Hapus</a></td>
  </tr>
<?
}
?>
</table>
    <input name="btnHapus" type="submit" value="Delete">
  <p align="center"><a href="index.php">Menu Utama
  </a></p>
</form>
</body>
</html>

Kemudian saya simpan dengan nama file laporan-data-mahasiswa.php, jika panggil melalui menu utama maka hasilnya akan seperti berikut :

laporan data mahasiswa

untuk sementara yang bisa digunakan hanya faslitas pencarian, anda bisa coba.

Secara logika, pencarian dilakukan apabila text pencarian dengan nama txtCari diisi dan dikirim, sehingg halaman laporan menerima melalui metode GET dan mencari berdasar nim atau nama.

Download halaman laporan data mahasiswa

Membuat halaman delete / hapus satu baris data

Jika anda lihat dibagian kolom laporan ada sebuah kolom dengan judul hapus, tulisan hapus pada tiap baris digunakan untuk mengahpus baris yang sesuai, mekanismenya, link hapus membawa nilai dengan kunci nim ke halaman hapus. Sekarang saya akan membuat halaman hapus untuk menerima kiriman dari link hapus. Lihat kode berikut :

<?php
include "koneksi.php";
$nim = $_GET['nim'];
$res = mysql_query("select photo from tb_mahasiswa where nim='".$_GET['nim']."' LIMIT 1");
$d=mysql_fetch_object($res);
if (strlen($d->photo)>3)
{
  if (file_exists($d->photo)) unlink($d->photo);
}	
$myquery =  "delete from tb_mahasiswa where nim ='$nim' limit 1"; 
$hapus = mysql_query($myquery) or die ("gagal menghapus"); 
header ("location:laporan-data-mahasiswa.php");
?>

Disini antara hapus satu baris saya bedakan filenya, agar lebih mudah difahami. Sebenarnya bisa digabung dengan mendeteksi bentuk kiriman parameter nilainya, nanti jika diperlukan akan saya bahas kembali.

Proses penghapusan data dalam file hapus-data-mahasiswa.php dilakukan dengan menghapus sekaligus file gambar yang sudah dimasukkan. Sebelum menghapus juga ada pengecekan status photo jika ada isinya dan jika ada filenya maka dilakukan hapus gambar.

Download file delete data mahasiswa

Membuat halaman delete / hapus banyak baris

Bagian ini adalah halaman yang akan menangani proses jika baris data dipilih dan tombol delete ditekan. Fungsinya adalah menghapus semua data yang sudah terpilih. Dibagian laporan, saya sudah buatkan checkbox yang masing-masing sudah diberi nilai dalam susunan array input. Lihat kode baris ini pada bagian kode laporan.

<input type="checkbox" name="item[]" id="item[]" value="<?php echo $dataku->nim?>" />

Setiap perulangan baris maka masing-masing item[] akan diberi nilai sesuai nim yang sedang diambil dalam tabel. Kemudian semua array akan dikirim ke halaman delete-banyak.php sesuai dengan action form yang ada sebelum tabel. Berikut kode untuk mengambil nilai dari array pilihan yang dihapus :

<?php
include "koneksi.php";
$jumlah = count($_POST["item"]);
for($i=0; $i < $jumlah; $i++) 
{
  $nim=$_POST["item"][$i];
  $res = mysql_query("select photo from tb_mahasiswa where nim='$nim' LIMIT 1");
  $d=mysql_fetch_object($res);
  if (strlen($d->photo)>3)
  {
    if (file_exists($d->photo)) unlink($d->photo);
  }	
  $myquery =  "delete from tb_mahasiswa where nim ='$nim' limit 1"; 
  $hapus = mysql_query($myquery) or die ("gagal menghapus"); 
}
header ("location:laporan-data-mahasiswa.php");
?>

Semua array akan dihitung dan dilakukan perulangan untuk menghapus photo serta recordnya.

Download file hapus banyak data mahasiswa

Setelah ini saya akan tulis lagi bagian 4, lanjutan tentang mengupdate data yang sudah masuk tabel database.

Semoga Bermanfaat, kritik saran, koreksi, pertanyaan jangan sungkan anda sampaikan. Silahkan berbagi buat yang lain jika ini menurut anda baik.

Zainal Hakim

Revisi Script : 08 Januari 2014

Baca juga Tutorial Membuat aplikasi data mahasiswa dengan PHP - Bagian 1 Bagian 2 - Bagian 3 - Bagian 4 - Bagian 5 - Bagian 6

** Bebas disunting dengan menyebutkan sumber **

Komentar

Halaman Lainya

  • Membuat aplikasi php dalam satu file
    Biasanya kita membuat sebuah aplikasi php, semua bagian/modul/halaman dipisah dalam file-file yang berbeda. Misalkan membuat aplikasi data mahasiswa, kita membuat halaman menu kemudian disimpan dalam menu.php, membuat input data lalu disimpan dalam input-data.php, kemudian membuat simpan lalu disimpan dalam simpan.php dst. Bagaimana jika semua fungsi halaman tersebut dijadikan dalam satu file? Simak artikel berikut.
  • Membuat file dengan php
    Dengan php kita bisa melakukan operasi terhadap file yang berada dalam server. Operasi file yang bisa dilakukan diantaranya adalah membuat file.
  • Membuat thumbnail dengan php
    Istilah kata thumbnail diartikan sebagai versi kecil dari sebuah gambar yang ditampilkan di komputer. Thumbnail ini digunakan untuk menggantikan gambar yang memiliki ukuran besar sehingga dapat ditampilkan lebih kecil dan cepat ke layar.
  • Perintah include dan require dalam php
    Perintah require() dan include() dalam php digunakan untuk menyisipkan isi file tertentu menjadi bagian file yang memanggilnya. Keduanya sangat identik dalam banyak hal, kecuali cara penanganan kegagalan. include() menghasilkan suatu peringatan, sedangkan require() menghasilkan pesan kesalahan Fatal Error.
  • Menghindari duplikat data dalam mysql dengan php
    Menghindari duplikat data dalam mysql bisa dilakukan dengan dua cara, pertama dengan mendefinisikan salah satu field/kolom sebagai primary key atau index, dan cara kedua adalah dengan membuat rutin perintah pengecekan data pada saat akan melakukan insert data. Berikut ini saya akan berbagi tentang bagaimana membuat rutin perintah php yang digunakan untuk menghindari duplikat data dalam mysql.

Kiriman terbaru