Halo-halo... Kita ketemu lagi
setelah sekian hari, nah kali ini kita bakal belajar cara update data dengan
PHP-MySQL.
Proses update data dengan PHP dan
MySQL biasanya memiliki mekanisme:
1. Tampilkan
list data terlebih dahulu.
2. Buat
link tiap baris data yang menuju proses update. Link memuat parameter yang di
dalamnya terdapat value sebagai acuan proses update data.
3. Bila
link diklik akan muncul form berisi data yang akan diedit.
Prinsipnya adalah menjalankan
query update pada SQL-nya.
UPDATE namaTabel SET namafield =
value WHERE ...
Sebagai contoh, kita akan
mengupdate data mahasiswa, dimana tabel untuk menyimpan data mahasiswa
berbentuk seperti di bawah ini.
nim varchar(5) primary key
nama varchar(30)
alamat (text)
sex varchar(1)
tgllahir date
sebagai contoh data awalnya
sebagai berikut:
NIM
|
NAMA
|
ALAMAT
|
SEX
|
TGLLAHIR
|
M0001
M0002
M0003
|
A
B
C
|
SOLO
JAKARTA
BANDUNG
|
L
L
P
|
1979-10-20
1982-09-10
1980-11-07
|
Langkah yang pertama dibuat
adalah menampilkan link datanya. Data disajikan dalam bentuk tabel dengan 6
kolom. 5 kolom untuk data awal dan kolom ke-6 untuk link edit.
list.php
<?php
mysql_connect("localhost",
"root", "");
mysql_select_db("data");
// query SQL untuk memunculkan semua
mahasiswa
$query
= "SELECT * FROM
mhs";
$hasil
= mysql_query($query);
echo "<table
border='1'>";
echo "<tr><td>NIM</td>
<td>Nama Mahasiswa</td>
<td>Alamat</td>
<td>Sex</td>
<td>Tgl Lahir</td>
<td>Action</td></tr>";
while ($data
= mysql_fetch_array($hasil))
{
echo "<tr><td>".$data['nim']."</td>
<td>".$data['nama']."</td>
<td>".$data['alamat']."</td>
<td>".$data['sex']."</td>
<td>".$data['tgllahir']."</td>
<td>Edit</td></tr>";
}
echo "</table>";
?>
Selanjutnya, link editnya
berbentuk seperti berikut:
Maka untuk memunculkan link di
atas maka isis ‘action’, scriptnya sebagai berikut:
<?php
mysql_connect("localhost",
"root", "");
mysql_select_db("data");
// query SQL untuk memunculkan semua
mahasiswa
$query
= "SELECT * FROM
mhs";
$hasil
= mysql_query($query);
echo "<table
border='1'>";
echo "<tr><td>NIM</td>
<td>Nama Mahasiswa</td>
<td>Alamat</td>
<td>Sex</td>
<td>Tgl Lahir</td>
<td>Action</td></tr>";
while ($data
= mysql_fetch_array($hasil))
{
echo "<tr><td>".$data['nim']."</td>
<td>".$data['nama']."</td>
<td>".$data['alamat']."</td>
<td>".$data['sex']."</td>
<td>".$data['tgllahir']."</td>
<td><a
href='edit.php?nim=".$data['nim']."'>Edit</a></td></tr>";
}
echo "</table>";
?>
Untuk script di atas masuk ke
script list.php untk tabel dengan link edit yang bisa diklik, sehingga dapat
membuka form berikutnya. Link di atas diedit berdasarkan parameter ‘NIM’.
Langkah selanjutnya adalah
membuat script edit.php untuk memunculkan form edit sekaligus data mahasiswa
yang akan diedit. Bagaimana caranya? Dengan query SELECT dengan nim sebagai
syaratnya. Dalam hal ini, nim dalam link edit sebagai syarat.
edit.php
<?php
mysql_connect("localhost",
"root", "");
mysql_select_db("data");
$nim = $_GET['nim'];
$query
= "SELECT * FROM
mhs WHERE nim =
'$nim'";
$hasil
= mysql_query($query);
$data = mysql_fetch_array($hasil);
echo "<form
method='post' action='update.php'>";
echo "<table>";
echo "<tr><td>NIM</td><td>:</td>
<td><input type='text' name='nim' value='".$data['nim']."'></td></tr>";
echo "<tr><td>Nama
Mahasiswa</td><td>:</td> <td><input type='text'
name='nama' value='".$data['nama']."'></td></tr>";
echo "<tr><td>Alamat</td><td>:</td>
<td><textarea name='alamat'>".$data['alamat']."</textarea></td></tr>";
echo "<tr><td>Sex</td><td>:</td>
<td><input type='radio' name='sex' value='L'> Laki-Laki <input
type='radio' name='sex' value='P'> Perempuan</td></tr>";
echo "<tr><td>Tgl
Lahir</td><td>:</td><td> <select
name='tgl'>";
for ($i=1;
$i<=31;
$i++)
{
echo "<option
value='".$i."'>".$i."</option>";
}
echo "</select>
<select name='bln'>";
for ($i=1;
$i<=12;
$i++)
{
echo "<option
value='".$i."'>".$i."</option>";
}
echo "</select>
<select name='thn'>";
for ($i=1980;
$i<=1997;
$i++)
{
echo "<option
value='".$i."'>".$i."</option>";
}
echo "</select>
</td></tr>";
echo "</table>";
echo "<input
type='submit' name='submit' value='Submit'>";
echo "</form>";
?>
Konsep radiobutton yanga kan
dicheked digunakan pada tanggal lahir. Caranya adalah dengan menggunakan konsep
IF. Untuk memecah tanggal, yaitu dengan menggunakan function explode(). Lalu sekarang,
bagaimana bila NIM yang diubah? Misal, NIM ‘M0001’ diubah menjadi ‘M0002’,
SQLnya sebagai berikut:
UPDATE mhs SET nim=’M0002’ WHERE
nim=’M0001’;
Jika diperhatikan, script di atas
perlu NIM lama guna proses update. Tapi bila komponen textboxpada form edit
untuk NIM di atas dirubah isinya, maka NIM awal akan hilang, lalu bagaimana
solusinya?
Maka yang harus kita lakukan
adalah membuat komponen hidden input untuk menyimpan NIM ynag lama. NIM ynag
lama ini akan dijadikan acuan proses updatenya. Letak hidden input bisa
diletakkan di sembarang tempat di dalam form. Konsep untuk script updatenya
hanyalah menjalankan query SQL UPDATE.
Tidak ada komentar:
Posting Komentar