วันอาทิตย์ที่ 26 สิงหาคม พ.ศ. 2561

การแก้ไขข้อมูล (Edit Data)


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 หมายถึงไม่สามารถแก้ไขข้อมูลได้

อ้างอิง : http://www.thaiwbi.com/course/php_mysql/edit_data.html

ไม่มีความคิดเห็น:

แสดงความคิดเห็น