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:
ผลลัพธ์ที่ได้:
เปิด Web Browser พิมพ์ localhost/test_program/show_form.php จะแสดงหน้าจอดังรูปภาพ
อธิบายโปรแกรม:
บรรทัดที่ 26 สร้างคอลัมน์ แก้ไข ในตารางเพิ่ม
บรรทัดที่ 47 สร้างคอลัมน์ แก้ไข โดยให้สามารถส่งข้อมูลที่อยู่ในฟิลด์ id ที่ต้องการแก้ไข ไปที่ไฟล์ edit_form.php ด้วย
ขั้นตอนที่ 2
สร้างฟอร์มแก้ไขข้อมูล ในตัวอย่างจะทำการสร้างไฟล์ edit_form.php สำหรับ สร้างฟอร์มแก้ไขข้อมูล โดยจะรับค่า $_GET[‘id’] เพื่อนำไปค้นหาข้อมูลที่อยู่ในฐานข้อมูล และนำมาแสดงในฟอร์มเพื่อทำการแก้ไข
Source Code:
ขั้นตอนที่ 3
เพิ่มเติม Source Code ในไฟล์ edit_form.php สำหรับการแก้ไขข้อมูล
Source Code:
ผลลัพธ์ที่ได้:
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 ปิดการเชื่อมต่อฐานข้อมูล