7.6 การเขียนโปรแกรมภาษาพีเอชพี เพื่อแก้ไขข้อมูลในตาราง

     เมื่อต้องการเขียนโปรแกรมภาษาพีเอชพี เพื่อแก้ไขข้อมูลที่มีในตาราง สามารถเขียนโปรแกรมตามขั้นตอนต่อไปนี้

7.6.1 เชื่อมต่อกับฐานข้อมูล MySQL

     เริ่มต้นโดยการเชื่อมต่อกับฐานข้อมูล MySQL โดยใช้ฟังก์ชัน mysqli_connect() โดยระบุ hostname, username, password และชื่อฐานข้อมูลที่ต้องการเชื่อมต่อ

7.6.2 ส่งคำสั่ง SQL เพื่อแก้ไขข้อมูล

      ใช้คำสั่ง SQL UPDATE เพื่อแก้ไขข้อมูลในตาราง โดยระบุชื่อตารางและค่าที่ต้องการแก้ไข

มีรูปแบบการใช้งาน คำสั่ง SQL UPDATE

โดยที่:  table_name คือชื่อของตารางที่ต้องการทำการแก้ไขข้อมูล

            column1, column2, ... เป็นชื่อของคอลัมน์ที่ต้องการแก้ไขข้อมูล

            condition เป็นเงื่อนไขที่ใช้ในการเลือกแถวที่ต้องการทำการแก้ไขข้อมูล

            value1, value2, ... เป็นค่าที่ต้องการให้คอลัมน์นั้นๆ ถูกแทนที่

ตัวอย่างการใช้งานคำสั่ง SQL UPDATE ใน MySQL:
7.6.2.1 แก้ไขข้อมูลในตาราง users

      โดยเปลี่ยนชื่อผู้ใช้ที่มี ID เท่ากับ 1 เป็น "John Doe" และอายุ เป็น 30


7.6.2.2 เพิ่มข้อมูลในตาราง products

     โดยเปลี่ยนราคาสินค้าทุกชิ้นให้เพิ่มขึ้น 10%


7.6.2.3 ปรับปรุงข้อมูลในตาราง orders

     เพื่อเปลี่ยนสถานะของคำสั่งซื้อที่ยังไม่ได้จัดส่งเป็น "กำลังจัดส่ง"


7.6.2.4 เปลี่ยนสถานะของผู้ใช้

     เปลี่ยนสถานะของผู้ใช้ทุกคนในตาราง users จาก "inactive" เป็น "active"

     คำสั่ง SQL UPDATE จะทำการแก้ไขข้อมูลตามเงื่อนไขที่ระบุ และจะคืนค่าเป็นจำนวนแถวที่ถูกแก้ไข ซึ่งสามารถนำมาใช้ในการตรวจสอบว่ามีการแก้ไขข้อมูลเปลี่ยนแปลงในฐานข้อมูลหรือไม่

7.6.3 ส่งคำสั่ง SQL ไปยัง MySQL Server

      โดยใช้ฟังก์ชัน mysqli_query() เพื่อส่งคำสั่ง SQL ไปยัง MySQL Server เพื่อทำการแก้ไขข้อมูลในตาราง

7.6.4 ปิดการเชื่อมต่อ

     หลังจากแก้ไขข้อมูลเสร็จสิ้น ควรปิดการเชื่อมต่อกับฐานข้อมูล MySQL โดยใช้ฟังก์ชัน mysqli_close()

ตัวอย่างโปรแกรมที่ 7.5 การเขียนโปรแกรมภาษาพีเอชพี เพิ่มการแก้ไขข้อมูลในตาราง

     เขียนโปรแกรมภาษาพีเอชพีเพื่อแก้ไขข้อมูลในตาราง ตามตัวอย่าง สามารถเขียนโปรแกรมตามขั้นตอนได้ดังนี้

ขั้นตอนที่ 1

      เปิดไฟล์ show_data.php  ที่ได้สร้างตามตัวอย่างที่ 7.4 ทำการเพิ่มเติม คำสั่งเพื่อสร้างปุ่มแก้ไขข้อมูลในไฟล์นี้ ตามตัวอย่าง

Source Code:

คลิกที่ปุ่ม RUN ด้านซ้ายเพื่อแสดงผลลัพธ์

ผลลัพธ์ที่ได้:

     เปิด Web Browser พิมพ์ localhost/test_program/show_form.php จะแสดงหน้าจอดังรูปภาพ

อธิบายโปรแกรม:

บรรทัดที่ 26 สร้างคอลัมน์ แก้ไข ในตารางเพิ่ม 

บรรทัดที่ 47 สร้างคอลัมน์ แก้ไข โดยให้สามารถส่งข้อมูลที่อยู่ในฟิลด์ id ที่ต้องการแก้ไข ไปที่ไฟล์ edit_form.php ด้วย

ขั้นตอนที่ 2

      สร้างฟอร์มแก้ไขข้อมูล ในตัวอย่างจะทำการสร้างไฟล์ edit_form.php สำหรับ สร้างฟอร์มแก้ไขข้อมูล โดยจะรับค่า $_GET[‘id’] เพื่อนำไปค้นหาข้อมูลที่อยู่ในฐานข้อมูล และนำมาแสดงในฟอร์มเพื่อทำการแก้ไข

Source Code:

คลิกที่ปุ่ม RUN ด้านซ้ายเพื่อแสดงผลลัพธ์
ขั้นตอนที่ 3

      เพิ่มเติม Source Code ในไฟล์ edit_form.php สำหรับการแก้ไขข้อมูล

Source Code:

คลิกที่ปุ่ม RUN ด้านซ้ายเพื่อแสดงผลลัพธ์

ผลลัพธ์ที่ได้:

1. ทดสอบการทำงาน เปิด Web Browser พิมพ์ localhost/test_program/show_data.php จะแสดงหน้าจอดังรูปภาพ ทดสอบคลิกแก้ไข ข้อมูลผู้ใช้ลำดับที่ 1


2. จะเข้าปรากฏหน้ารายละเอียด สำหรับแก้ไขข้อมูลผู้ใช้งาน ( edit_form.php ) ขึ้นมา ให้ทดสอบแก้ไขได้เฉพาะชื่อ นามสกุล เพศ และวันเกิด เท่านั้น ผลลัพธ์ที่ได้ดังรูป


จากตัวอย่างทดสอบแก้ไข นามสกุล เป็น สุขสมหวัง และแก้ไขวันเกิดเป็น 27/36/1999 เมื่อแก้ไขข้อมูลเสร็จแล้วให้คลิกที่ปุ่มแก้ไขข้อมูล


3. เมื่อแก้ไขข้อมูลเสร็จ ไฟล์ show_data.php จะแสดงหน้าจอดังรูปภาพ

อธิบายโปรเเกรม:

บรรทัดที่ 2 ใช้คำสั่ง require() นำเข้าไฟล์ connect.php เพื่อเชื่อมต่อฐานข้อมูล

บรรทัดที่ 3 ในคำสั่ง if ใช้ ฟังก์ชัน isset ตรวจสอบ ว่า มีการส่งค่า ตัวแปร $_GET[‘id’] มาหรือไม่

บรรทัดที่ 4 สร้างตัวแปร $id รับค่ามาจาก ตัวแปร $_GET[‘id’] 

บรรทัดที่ 5 สร้างตัวแปร $sql เก็บค่าคำสั่ง SQL ค้นหาข้อมูล ที่มีค่า id เท่ากับ ตัวแปร $id

บรรทัดที่ 6 สร้าง ตัวแปร $ result เก็บค่าที่ได้ จากฟังก์ชัน mysqli_query() 

บรรทัดที่ 7 สร้างตัวแปร $row เก็บค่าที่ได้จาก ฟังก์ชัน mysqli_fetch_assoc()

บรรทัดที่ 8 คำสั่ง if ตรวจสอบ ว่าตัวแปร !$row  มีไม่ค่าเป็นจริงหรือไม่ หากไม่เป็นจริง ให้แสดงผลError

บรรทัดที่ 18 แท็ก input กำหนด name ชื่อ name และ value เท่ากับ ตัวแปร $row['name'] 

บรรทัดที่ 21 แท็ก input กำหนด name ชื่อ surname และ value เท่ากับ ตัวแปร $row['surname']

บรรทัดที่ 24 แท็ก input กำหนด name ชื่อ sex และ value มีค่าเท่ากับ male และตรวจสอบว่าถ้า $row ['sex'] มีค่าเท่ากับ male ให้ช่องนี้ถูกเลือกเป็นรายการแรก

บรรทัดที่ 26 แท็ก input กำหนด name ชื่อ sex และ value มีค่าเท่ากับ female และตรวจสอบว่าถ้า $row ['sex'] มีค่าเท่ากับ female ให้ช่องนี้ถูกเลือกเป็นรายการแรก

บรรทัดที่ 28 แท็ก input กำหนด name ชื่อ sex และ value มีค่าเท่ากับ other และตรวจสอบว่าถ้า $row ['sex'] มีค่าเท่ากับ other ให้ช่องนี้ถูกเลือกเป็นรายการแรก

บรรทัดที่ 30 แท็ก input กำหนด name ชื่อ birth และ value เท่ากับ ตัวแปร $row[birth]

บรรทัดที่ 37 ใช้คำสั่ง if และ คำสั่ง isset ตรวจสอบว่า มีค่าตัวแปร $_POST[‘submit] ส่งมาหรือไม่ 

บรรทัดที่ 38 – 41 สร้างตัวแปรเก็บ ข้อมูลที่รับมาจากตัวแปร $_POST 

บรรทัดที่ 43 สร้างตัวแปร $sql เก็บค่าคำสั่ง SQL สำหรับ UPDATE ข้อมูลที่มี id เท่ากับ ตัวแปร $id 

บรรทัดที่ 44 ใช้คำสั่ง if ตรวจสอบว่า ฟังก์ชัน mysqli_query() มีการทำงาน และส่งผล กลับมาเป็นจริงหรือไม่ 

บรรทัดที่ 45 แสดงผลข้อความ Record updated successfully หากมีการทำงาน เป็นจริง 

บรรทัดที่ 47 แสดงผลข้อความ Error updating record กรณีมีการทำงานเป็นเท็จ หรือมีข้อผิดพลาด

บรรทัดที่ 50 ปิดการเชื่อมต่อฐานข้อมูล