Append Query di PHP MySQL
OK SOB,
Pada dasarnya query yang kita kenal di PHP MySQL ada 3 (tiga), INSERT, UPDATE dan DELETE.
Namun ada satu lagi query yang sebenarnya query dasar, tapi jarang di ajarkan di pembelajaran, padahal query ini sangat penting.
Namun ada satu lagi query yang sebenarnya query dasar, tapi jarang di ajarkan di pembelajaran, padahal query ini sangat penting.
Apa itu Append Query ?
Append Query adalah query untuk menambahkan data dari tabel tertentu ke tabel yang dituju. Dengan query ini anda akan kenal dengan Temporary Table.
Apa itu Temporary Table ?
Temporary Table merupakan tempat penyimpanan sementara data. Misalkan di aplikasi penerimaan siswa baru. Dengan alur seperti : siswa yang terdaftar, belum nyata menjadi siswa, dengan kata lain siswa tersebut hanya masuk ke tabel pendaftar. Belum dikonfirmasi dan belum dikelola alias data mentah. Dan jika dikonfirmasi maka data siswa masuk ke tabel dikonfirmasi dan menghapus data dari tabel pendaftar, dan jika tidak diterima maka masuk ke tabel tidak diterima dengan menghapus data dari tabel pendaftar.
Yang mana Temporary Table ?
Di alur ini Termporary Tablenya adalah Pendaftar. Karena di tabel pendaftar hanya meyimpan data sementara sebelum dikelola ke tabel dikonfirmasi ataupun ke tabel tidak diterima.
Kembali ke topik utama. Append Query
Contoh 1 :
Contoh 2 :
<?php
include 'koneksi.php';
if (isset($_POST['batalkan_konfirmasi'])) {
$a = $_POST['nisn'];
$q = mysql_query("INSERT INTO pendaftaran (nmSiswa, noInduk, nisn, tmpLahir, tglLahir, jk, agama, statusDalamKeluarga, anakKe, alamatSiswa, teleponAtauHp, sekolahAsal, nmAyah, nmIbu, alamatOrtu, teleponAtauHpOrtu, pekerjaanAyah, pekerjaanIbu, nmWali, alamatWali, teleponAtauHpWali, pekerjaanWali, hubunganDenganWali, tahunAjaran) SELECT dikonfirmasi.nmSiswa, dikonfirmasi.noInduk, dikonfirmasi.nisn, dikonfirmasi.tmpLahir, dikonfirmasi.tglLahir, dikonfirmasi.jk, dikonfirmasi.agama, dikonfirmasi.statusDalamKeluarga, dikonfirmasi.anakKe, dikonfirmasi.alamatSiswa, dikonfirmasi.teleponAtauHp, dikonfirmasi.sekolahAsal, dikonfirmasi.nmAyah, dikonfirmasi.nmIbu, dikonfirmasi.alamatOrtu, dikonfirmasi.teleponAtauHpOrtu, dikonfirmasi.pekerjaanAyah, dikonfirmasi.pekerjaanIbu, dikonfirmasi.nmWali, dikonfirmasi.alamatWali, dikonfirmasi.teleponAtauHpWali, dikonfirmasi.pekerjaanWali, dikonfirmasi.hubunganDenganWali, dikonfirmasi.tahunAjaran FROM dikonfirmasi WHERE nisn='$a'")or die("Error On Step 1 ! Please Call Administrator ".mysql_error());
if ($q) {
$qd = mysql_query("DELETE FROM dikonfirmasi WHERE nisn='$a'")or die("Error On Step 2.1 ! Please Call Administrator ".mysql_error());
echo "<script>location.assign('index.php?halaman=pendaftaran'); </script>";
} else {
die("Error For Cancel Confirmation ! Please Call Administrator For Solution ".mysql_error());
}
}
?>
Contoh 1 beda dengan kasus Temporary Table, itu Append Query sederhana. dengan catatan variabel id ($id) harus mengunakan variabel post ($_POST). Kenapa harus variabel post ? Jawabannya simpel, karena memasukan data.
Bagaimana cara agar mendapat variabel post ? sedangkan data yang diambil merupakan data dari list, bukan dari form inputan. Yakni dengan cara sebagai berikut :
Tombol dengan Icon X yang berada di dalam garis hijau. merupakan tombol untuk membatalkan konfirmasi.
Yang mana Temporary Table ?
Di alur ini Termporary Tablenya adalah Pendaftar. Karena di tabel pendaftar hanya meyimpan data sementara sebelum dikelola ke tabel dikonfirmasi ataupun ke tabel tidak diterima.
Kembali ke topik utama. Append Query
Contoh 1 :
<?php
$id = $_POST['id'];
$q = mysql_query ("INSERT INTO tbl_belajar (id, nmIlmu, deskripsi) SELECT tbl_guru.id, tbl_guru.nmIlmu, tbl_guru.deskipsi FROM tbl_guru WHERE id='$id'");
if ($q) {
echo "<script>location.assign('frm_belajar.php'); </script>";
}
?>
$id = $_POST['id'];
$q = mysql_query ("INSERT INTO tbl_belajar (id, nmIlmu, deskripsi) SELECT tbl_guru.id, tbl_guru.nmIlmu, tbl_guru.deskipsi FROM tbl_guru WHERE id='$id'");
if ($q) {
echo "<script>location.assign('frm_belajar.php'); </script>";
}
?>
Contoh 2 :
<?php
include 'koneksi.php';
if (isset($_POST['batalkan_konfirmasi'])) {
$a = $_POST['nisn'];
$q = mysql_query("INSERT INTO pendaftaran (nmSiswa, noInduk, nisn, tmpLahir, tglLahir, jk, agama, statusDalamKeluarga, anakKe, alamatSiswa, teleponAtauHp, sekolahAsal, nmAyah, nmIbu, alamatOrtu, teleponAtauHpOrtu, pekerjaanAyah, pekerjaanIbu, nmWali, alamatWali, teleponAtauHpWali, pekerjaanWali, hubunganDenganWali, tahunAjaran) SELECT dikonfirmasi.nmSiswa, dikonfirmasi.noInduk, dikonfirmasi.nisn, dikonfirmasi.tmpLahir, dikonfirmasi.tglLahir, dikonfirmasi.jk, dikonfirmasi.agama, dikonfirmasi.statusDalamKeluarga, dikonfirmasi.anakKe, dikonfirmasi.alamatSiswa, dikonfirmasi.teleponAtauHp, dikonfirmasi.sekolahAsal, dikonfirmasi.nmAyah, dikonfirmasi.nmIbu, dikonfirmasi.alamatOrtu, dikonfirmasi.teleponAtauHpOrtu, dikonfirmasi.pekerjaanAyah, dikonfirmasi.pekerjaanIbu, dikonfirmasi.nmWali, dikonfirmasi.alamatWali, dikonfirmasi.teleponAtauHpWali, dikonfirmasi.pekerjaanWali, dikonfirmasi.hubunganDenganWali, dikonfirmasi.tahunAjaran FROM dikonfirmasi WHERE nisn='$a'")or die("Error On Step 1 ! Please Call Administrator ".mysql_error());
if ($q) {
$qd = mysql_query("DELETE FROM dikonfirmasi WHERE nisn='$a'")or die("Error On Step 2.1 ! Please Call Administrator ".mysql_error());
echo "<script>location.assign('index.php?halaman=pendaftaran'); </script>";
} else {
die("Error For Cancel Confirmation ! Please Call Administrator For Solution ".mysql_error());
}
}
?>
Contoh 1 beda dengan kasus Temporary Table, itu Append Query sederhana. dengan catatan variabel id ($id) harus mengunakan variabel post ($_POST). Kenapa harus variabel post ? Jawabannya simpel, karena memasukan data.
Bagaimana cara agar mendapat variabel post ? sedangkan data yang diambil merupakan data dari list, bukan dari form inputan. Yakni dengan cara sebagai berikut :
| Data Dikonfirmasi |
<table class="table table-bordered table-striped datatable">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>NISN</th>
<th>Jenis Kelamin</th>
<th>Nilai</th>
<th>Sekolah Asal</th>
<th>Tanggal Diterima</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<?php
include 'koneksi.php';
$n = 1;
$ta = $_SESSION['tahunAjaran'];
$q = mysql_query("SELECT * FROM dikonfirmasi WHERE tahunAjaran='$ta' ORDER BY nmSiswa ASC");
while ($d = mysql_fetch_array($q)) {
?>
<tr>
<td><?php echo $n++ ?></td>
<td><?php echo $d['nmSiswa'] ?></td>
<td><?php echo $d['nisn'] ?></td>
<td><?php echo $d['jk'] ?></td>
<td><?php echo $d['nilai'] ?></td>
<td><?php echo $d['sekolahAsal'] ?></td>
<td><?php echo $d['tglDiterima'] ?></td>
<td align="right">
<a href="index.php?halaman=rekap_pendaftaran/dikonfirmasi/dAnde&nisn=<?php echo $d['nisn']; ?>"><span data-placement='top' data-toggle='tooltip' title='Lihat Detail | Kelola Data'><button class='btn btn-primary btn-xs'><span class='glyphicon glyphicon-search'></span> | <span class='glyphicon glyphicon-pencil'></span></button><span></a></a>
</td>
<td>
<form action="batalkan.php" method="post">
<input type="hidden" name="nisn" value="<?php echo $d['nisn']; ?>">
<a href="batalkan.php?nisn=<?php echo $d['nisn']; ?>"><span data-placement='top' data-toggle='tooltip' title='Batalkan Konfirmasi'><button class='btn btn-danger btn-xs' name="batalkan_konfirmasi"><span class='glyphicon glyphicon-remove'></span></button><span></a></a>
</form>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
Text yang ditebalkan merupakan kunci untuk mendapatkan variabel post. Menambahkan form inputan dengan method post dan menambahkan input type dengan nama nisn sebagai primary key (kunci utama), di tombol batalkan konfirmasi. Dengan itu variabel post bisa digunakan untuk Contoh 2 diatas.
Apa selanjutnya ?
Selanjutnya, Praktekan. terap semangat dan jangan menyerah jika ada masalah yang belum terpecahkan. Ya, belum terpecahkan. Bukan tidak bisa dipecahkan.
OK SOB, sekian untuk postingan Append Query di PHP MySQL dan Mengenal Temporary Table
ilmunya sangat bermanfaat Sob! terimakasih
BalasHapusSama-sama
Hapusditunggu kembali postingan selanjutnya
BalasHapus