Edit Data แก้ไขค้นข้อมูล

 

      หลังจากที่ได้ปฏิบัติการเพิ่มข้อมูล แสดงข้อมูลและสืบค้นข้อมูลไปได้เรียบร้อยแล้ว

       มาในตอนนี้ก็จะเป็นการปฏิบัติการ แก้ไขข้อมูล

       การแก้ไขข้อมูลนั้นเราต้องทราบก่อนว่าในระบบฐานข้อมูลนั้นมีข้อมูลอะไรอยู่บ้าง ดังนั้นเราจำเป็นต้องเปิดฐานข้อมูลให้ได้ก่อน ในที่นี้ขอนำเอา show1 มาปรับแก้นิดหน่อย

       โปรแกรมประกอบไปด้วย

  1. file show2.php ที่เป็นส่วนนำเสนอข้อมูลเพื่อการแก้ไข
  2. file edit.php ที่ทำหน้าที่ประมวลผล ติดต่อฐานข้อมูล และแก้ไขข้อมูล
  3. 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>");
         }
?>

การทำงาน ของโปรแกรมจะเป็นขั้นตอนตามที่ได้ระบายแดงไว้ ดังนี้

  1. ติดต่อโปรแกรมฐานข้อมูล MySQL
  2. เลือกดาต้าเบสชื่อ test
  3. เลือกตารางชื่อ testcom
  4. แสดงทุกเขตข้อมูล
  5. ส่งข้อมูลระเบียนชุดที่ต้องการแก้ไขไปดำเนินการแก้ไขที่ 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>
                     <?
                  }
              }
         }
?>

การทำงาน ของโปรแกรมจะเป็นขั้นตอนตามที่ได้ระบายแดงไว้ ดังนี้

  1. ตรวจเช็คข้อมูล autonum ว่ามีการส่งข้อมูลที่ต้องการแก้ไขมาหรือไม่
  2. ติดต่อโปรแกรมฐานข้อมูล MySQL
  3. เลือกเปิดตารางชื่อ testcom โดยนำเขตข้อมูล autonum ไปเปรียบเทียบกับ $autonum หากตรงกันให้ทำการแก้ไข
  4. ส่งระเบียนที่แก้ไขแล้วไปทำการเปลี่ยนแปลงข้อมูลในดาต้าเบสที่ 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.");
                        }
               }
?>

การทำงาน ของโปรแกรมจะเป็นขั้นตอนตามที่ได้ระบายแดงไว้ ดังนี้

  1. ตรวจเช็คการส่งข้อมูลเพื่อบันทึกการแก้ไข ว่ามีการลบเขตข้อมูลหรือไม่
  2. ติดต่อฐานข้อมูล MySql
  3. เลือกเปิดตารางชื่อ test
  4. นำข้อมูลที่แก้ไขแล้วทุกเขตข้อมูลมาเปรียบเทียบกับทุกเขตข้อมูลในตาราง test จากนั้นบันทึกข้อมูลที่แก้ไขแล้วลงไป

หากพบข้อความ เตือน จะมีความหมายดังนี้

  • ERROR BLANK FORM หมายถึงไม่มีการส่งข้อมูลมาเพื่อทำการแก้ไขหรือมีการลบข้อมูลในเขตข้อมูลนั้นๆ
  • ERROR หมายถึงติดต่อฐานข้อมูลไม่ได้
  • Edit data OK. หมายถึงได้ทำการแก้ไขข้อมูลเสร็จเรียบร้อยแล้ว
  • Edit data fail หมายถึงไม่สามารถแก้ไขข้อมูลได้


ที่มา source code ส่วนระบบฐานข้อมูล:Thaidev.com
(ผู้เขียนนำมาปรับปรุงเพื่อใช้ในการเรียนการสอน ต้องขอขอบพระคุณ Thaidev.com มา ณ ที่นี้)

สงวนลิขสิทธิ์©: ThaiWBI.com. ผู้ช่วยศาสตราจารย์ ดร. ภาสกร เรืองรอง