หลังจากที่ได้ปฏิบัติการเพิ่มข้อมูล
แสดงข้อมูลและสืบค้นข้อมูลไปได้เรียบร้อยแล้ว
มาในตอนนี้ก็จะเป็นการปฏิบัติการ
แก้ไขข้อมูล
การแก้ไขข้อมูลนั้นเราต้องทราบก่อนว่าในระบบฐานข้อมูลนั้นมีข้อมูลอะไรอยู่บ้าง
ดังนั้นเราจำเป็นต้องเปิดฐานข้อมูลให้ได้ก่อน ในที่นี้ขอนำเอา show1 มาปรับแก้นิดหน่อย
โปรแกรมประกอบไปด้วย
- file show2.php ที่เป็นส่วนนำเสนอข้อมูลเพื่อการแก้ไข
- file edit.php ที่ทำหน้าที่ประมวลผล ติดต่อฐานข้อมูล และแก้ไขข้อมูล
- file update.php ที่ทำหน้าที่ประมวลผล ติดต่อฐานข้อมูล และบันทึกการแก้ไขข้อมูล
1. file show2.php มีข้อมูลหรือ
Source code ดังนี้
<?
//1 ติดต่อฐานข้อมูล MySql
$link=mysql_connect("localhost","","");
if (!$link)
{
print("ERROR");
}
else
//2
เลือกเปิดดาต้าเบสชื่อ test
{
mysql_select_db("test",$link);
//3 เลือกเปิดตารางชื่อ
testcom
$sql="select
* from testcom order by autonum DESC";
$res
= mysql_query( $sql , $link );
print("<Table
border=1>");
//ส่งข้อมูลไปที่
del.php เพื่อทำการลบ//
print("<form
method=get action=del.php>");
//สร้างตาราง
print
"<table border=1><tr><td>ลบ</td><td>แก้ไข</td><td>ชื่อ</td><td>ชั้น</td>
<td>โรงเรียน</td>
<td>วันที่ทำ</td><td>เวลาที่ทำ</td><td>ได้คะแนน</td></tr>";
//4
แสดงข้อมูลทุกเขตข้อมูล
while(
$row=mysql_fetch_row($res))
{
print("<tr>");
//ส่งข้อมูลไปที่
del.php โดยอ้างตามลำดับที่ (autonum) เพื่อทำการลบข้อมูล
print("<td><input
type=radio name=del value=$row[0]></td>");
//5 ส่งข้อมูลไปที่
edit.php โดยอ้างตามลำดับที่ (autonum) เพื่อทำแก้ไขข้อมูล
print("<td><a
href=edit.php?autonum=$row[0]>$row[0]</a></td><td>$row[1]</td>");
print("<td>
$row[2]</td><td>$row[3]</td><td>$row[4]</td>
<td>$row[5]</td><td>$row[6]</td>");
print("</tr>");
}
print("</table><p>");
print("<input
type=submit value=ลบข้อมูล>");
print("</form>");
}
?>
|
การทำงาน ของโปรแกรมจะเป็นขั้นตอนตามที่ได้ระบายแดงไว้
ดังนี้
- ติดต่อโปรแกรมฐานข้อมูล
MySQL
- เลือกดาต้าเบสชื่อ test
- เลือกตารางชื่อ testcom
- แสดงทุกเขตข้อมูล
- ส่งข้อมูลระเบียนชุดที่ต้องการแก้ไขไปดำเนินการแก้ไขที่
file ชื่อ edit.php
หมายเหตุ เฉพาะส่วนที่ระบายสีน้ำเงินเป็นส่วนที่ทำงานเกี่ยวกับการลบข้อมูล
ซึ่งจะกล่าวในหัวข้อลบข้อมูลต่อไป
2. file edit.php มีข้อมูลหรือ Source code ดังนี้
<?
//1 ตรวจเช็คข้อมูล autonum ว่ามีการส่งข้อมูลที่ต้องการแก้ไขมาหรือไม่
if ($autonum=="")
{
print("ERROR
NO ID");
}
else
{
//2 ติดต่อฐานข้อมูล
MySql
$link=mysql_connect("localhost","","");
if
(!$link)
{
print("ERROR");
}
else
{
mysql_select_db("test",$link);
//3 เลือกเปิดตารางชื่อ
testcom โดยนำเขตข้อมูล autonum
// ไปเปรียบเทียบกับ $autonum หากตรงกันให้ทำการแก้ไข
$sql="select
* from testcom where autonum=$autonum";
$res
= mysql_query( $sql , $link );
$n=mysql_num_rows($res);
if
($n==0)
print("Error
entry not found");
else
{
$row=mysql_fetch_row($res);
?>
//4 ส่งระเบียนที่แก้ไขแล้วไปทำการเปลี่ยนแปลงข้อมูลในดาต้าเบสที่
file update.php
<p><form
method="post" action="update.php">
ลำดับ
: <?=$row[0]?><br>
<input
type="hidden" name="autonum" value="<?=$row[0]?>">
ชื่อ
<input type="text" name="name" value="<?=$row[1]?>"><br>
ชั้น
<input type="text" name="class" value="<?=$row[2]?>"><br>
โรงเรียน
<input type="text" name="school" value="<?=$row[3]?>"><br>
วันที่
<input type="text" name="today" value="<?=$row[4]?>"><br>
เวลา
<input type="text" name="time" value="<?=$row[5]?>"><br>
คะแนน
<input type="text" name="score" value="<?=$row[6]?>"><br>
<input
type="submit" name="Submit" value="แก้ไขข้อมูล">
</p>
</form>
<?
}
}
}
?> |
การทำงาน ของโปรแกรมจะเป็นขั้นตอนตามที่ได้ระบายแดงไว้
ดังนี้
- ตรวจเช็คข้อมูล autonum ว่ามีการส่งข้อมูลที่ต้องการแก้ไขมาหรือไม่
- ติดต่อโปรแกรมฐานข้อมูล
MySQL
- เลือกเปิดตารางชื่อ testcom โดยนำเขตข้อมูล
autonum ไปเปรียบเทียบกับ $autonum หากตรงกันให้ทำการแก้ไข
- ส่งระเบียนที่แก้ไขแล้วไปทำการเปลี่ยนแปลงข้อมูลในดาต้าเบสที่
file update.php
หากพบข้อความ เตือน จะมีความหมายดังนี้
- ERROR NO ID หมายถึงไม่มีการส่งข้อมูลมาเพื่อทำการแก้ไข
- ERROR หมายถึงติดต่อฐานข้อมูลไม่ได้
3. file update.php มีข้อมูลหรือ Source code ดังนี้
<?
//1. ตรวจเช็คการส่งข้อมูลเพื่อบันทึกการแก้ไข
ว่ามีการลบเขตข้อมูลหรือไม่
if ($autonum=="" || $name=="" || $class==""
|| $school=="" || $today=="" || $time==""
|| $score=="")
{
print("ERROR
BLANK FORM<BR>");
}
else
{
//2. ติดต่อฐานข้อมูล MySql
$link=mysql_connect("localhost","","");
if
(!$link)
{
print("ERROR");
}
else
{
//3. เลือกเปิดตารางชื่อ
test
mysql_select_db("test",$link);
//4. นำข้อมูลที่แก้ไขแล้วทุกเขตข้อมูลมาเปรียบเทียบกับทุกเขตข้อมูลในตาราง
test จากนั้นบันทึกข้อมูลที่แก้ไขแล้วลงไป
$sql
= "UPDATE testcom SET autonum= '$autonum', name = '$name',
class = '$class', school = '$school' WHERE autonum = '$autonum'
LIMIT 1";
$res
= mysql_query( $sql , $link );
if
($res==1)
print("Edit
data OK.");
else
print("Edit
data fail.");
}
}
?> |
การทำงาน ของโปรแกรมจะเป็นขั้นตอนตามที่ได้ระบายแดงไว้
ดังนี้
- ตรวจเช็คการส่งข้อมูลเพื่อบันทึกการแก้ไข
ว่ามีการลบเขตข้อมูลหรือไม่
- ติดต่อฐานข้อมูล MySql
- เลือกเปิดตารางชื่อ test
- นำข้อมูลที่แก้ไขแล้วทุกเขตข้อมูลมาเปรียบเทียบกับทุกเขตข้อมูลในตาราง
test จากนั้นบันทึกข้อมูลที่แก้ไขแล้วลงไป
หากพบข้อความ เตือน จะมีความหมายดังนี้
- ERROR BLANK FORM
หมายถึงไม่มีการส่งข้อมูลมาเพื่อทำการแก้ไขหรือมีการลบข้อมูลในเขตข้อมูลนั้นๆ
- ERROR หมายถึงติดต่อฐานข้อมูลไม่ได้
- Edit data OK. หมายถึงได้ทำการแก้ไขข้อมูลเสร็จเรียบร้อยแล้ว
- Edit data fail หมายถึงไม่สามารถแก้ไขข้อมูลได้
|