ในยุคที่ทุกอย่างเป็นดิจิทัล การจัดการข้อมูลนักเรียนด้วยกระดาษหรือไฟล์ Excel ที่กระจัดกระจาย อาจทำให้ข้อมูลสูญหาย สับสน และค้นหาได้ยาก การมี “ระบบฐานข้อมูลบนเว็บ” ของตัวเองจึงเป็นทางออกที่ดีที่สุด
สำหรับผู้ที่กำลังเริ่มต้นเรียนเขียนเว็บ PHP และ MySQL คือสองเครื่องมือพื้นฐานที่ทรงพลังและ “ต้องหัด” เพราะเป็นพื้นฐานของระบบเว็บทั่วโลก (ตั้งแต่ Facebook จนถึง WordPress)
บทความนี้จะพาคุณไปดูแนวคิดและขั้นตอนหลักในการสร้างระบบบันทึกข้อมูลนักเรียนอย่างง่ายๆ (ที่เรียกว่าระบบ CRUD) ด้วย PHP และ MySQL ตั้งแต่การออกแบบฐานข้อมูลจนถึงการเขียนโค้ด
CRUD คืออะไร? หัวใจของทุกระบบจัดการข้อมูล
ก่อนจะเริ่ม เราต้องเข้าใจคำว่า CRUD ก่อน นี่คือฟังก์ชันพื้นฐาน 4 อย่างที่ระบบจัดการข้อมูลแทบทุกชนิดต้องมี:
- C = Create (สร้าง): การเพิ่มข้อมูลนักเรียนใหม่ (เช่น กรอกฟอร์มสมัคร)
- R = Read (อ่าน): การดึงข้อมูลนักเรียนมาแสดง (เช่น หน้ารายชื่อนักเรียนทั้งหมด หรือหน้ารายละเอียด)
- U = Update (อัปเดต): การแก้ไขข้อมูลนักเรียนที่มีอยู่ (เช่น แก้ไขเบอร์โทรหรือที่อยู่)
- D = Delete (ลบ): การลบข้อมูลนักเรียน (เช่น เมื่อนักเรียนลาออก)
เป้าหมายของเราคือการสร้าง 4 ฟังก์ชันนี้ให้ทำงานร่วมกันได้ค่ะ
1. การเตรียมฐานข้อมูล (The “MySQL” Part)
สิ่งแรกที่ต้องทำคือ “บ้าน” สำหรับเก็บข้อมูล เราจะใช้ MySQL (หรือ MariaDB ซึ่งมักมาคู่กัน)
- เปิดเครื่องมือ: ใช้เครื่องมืออย่าง phpMyAdmin (ซึ่งมีอยู่ในโปรแกรมจำลองเซิร์ฟเวอร์อย่าง XAMPP หรือ MAMP)
- สร้าง Database: สร้างฐานข้อมูล (Database) ใหม่ เช่น ชื่อ
school_db - สร้าง Table: ใน
school_dbให้สร้างตาราง (Table) สำหรับเก็บข้อมูลนักเรียน เช่น ชื่อstudents
โครงสร้างตาราง students อาจมีหน้าตาประมาณนี้:
id(INT, Primary Key, Auto_Increment) – รหัสประจำตัวนักเรียน (ให้ระบบรันเลขอัตโนมัติ)first_name(VARCHAR) – ชื่อจริงlast_name(VARCHAR) – นามสกุลemail(VARCHAR) – อีเมลผู้ปกครอง หรือ นักเรียนclass(VARCHAR) – ชั้นเรียน (เช่น ม.1/1)register_date(TIMESTAMP) – วันที่ลงทะเบียน
2. การเชื่อมต่อ PHP กับ MySQL (The “Connection”)
เมื่อมีบ้านแล้ว ก็ถึงเวลาที่ PHP จะต้อง “คุย” กับบ้านหลังนี้ เราจะสร้างไฟล์เดียวเพื่อใช้เชื่อมต่อโดยเฉพาะ เช่น db_connect.php
ในไฟล์นี้ จะมีโค้ดที่บอก PHP ว่า:
- เซิร์ฟเวอร์ฐานข้อมูลอยู่ที่ไหน (Host: มักจะเป็น
localhost) - ชื่อผู้ใช้ (Username: มักจะเป็น
rootในเครื่องทดสอบ) - รหัสผ่าน (Password: มักจะว่างไว้ใน XAMPP)
- จะเชื่อมต่อไปยังฐานข้อมูลชื่ออะไร (Database Name:
school_db)
ตัวอย่างโค้ด (แบบง่าย – mysqli):
PHP
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "school_db";
// สร้างการเชื่อมต่อ
$conn = new mysqli($servername, $username, $password, $dbname);
// ตรวจสอบการเชื่อมต่อ
if ($conn->connect_error) {
die("การเชื่อมต่อล้มเหลว: " . $conn->connect_error);
}
// ถ้าเชื่อมต่อสำเร็จ ก็ไม่ต้องแสดงอะไร
?>
3. สร้างระบบ CRUD (The “PHP” Part)
นี่คือขั้นตอนการสร้างไฟล์ PHP เพื่อจัดการฟังก์ชันทั้ง 4 ครับ
🔵 C – Create (เพิ่มนักเรียน)
เราต้องใช้ 2 ไฟล์:
add_student.html(หน้าฟอร์ม):- สร้างฟอร์ม HTML ธรรมดา ที่มีช่อง
<input>สำหรับกรอกfirst_name,last_name,email,class - ฟอร์มนี้ต้องตั้งค่า
method="POST"และaction="save_student.php"
- สร้างฟอร์ม HTML ธรรมดา ที่มีช่อง
save_student.php(ไฟล์รับข้อมูล):include 'db_connect.php';เพื่อเชื่อมต่อฐานข้อมูล- รับค่าที่ส่งมาจากฟอร์มด้วย
$_POST['first_name'],$_POST['last_name']ฯลฯ - เขียนคำสั่ง SQL
INSERT INTO students (...) VALUES (...)เพื่อเพิ่มข้อมูลลงตาราง - สำคัญ: ต้องป้องกัน SQL Injection ด้วย (เช่น ใช้ Prepared Statements)
- เมื่อบันทึกเสร็จ ให้สั่ง
header('Location: index.php');เพื่อเด้งกลับไปหน้าหลัก
🔵 R – Read (แสดงรายชื่อนักเรียน)
สร้างไฟล์ index.php (หรือ view_students.php):
include 'db_connect.php';- เขียนคำสั่ง SQL
SELECT * FROM students - ใช้คำสั่ง
mysqli_query()เพื่อดึงข้อมูล - ใช้
whileloop เพื่อวนลูปข้อมูลที่ได้มาทีละแถว - แสดงผลข้อมูลในตาราง HTML (
<table>) - ในแต่ละแถว ให้สร้างลิงก์ “แก้ไข” และ “ลบ” โดยแนบรหัส
idของนักเรียนไปด้วย (เช่น<a href="edit.php?id=5">แก้ไข</a>)
🔵 U – Update (แก้ไขข้อมูล)
ต้องใช้ 2 ไฟล์ (คล้ายกับ Create):
edit_student.php(หน้าฟอร์มแก้ไข):- รับค่า
idที่ส่งมาทาง URL (ด้วย$_GET['id']) include 'db_connect.php';- เขียน SQL
SELECT * FROM students WHERE id = ?(โดยใช้idที่รับมา) - ดึงข้อมูลนักเรียนคนนั้นออกมา
- สร้างฟอร์ม HTML ที่ “เหมือน” กับหน้า Add แต่ “เติม” ข้อมูลเดิมของนักเรียนลงในช่อง
<input value="..."> - ฟอร์มนี้จะส่ง
action="update_student.php"พร้อมกับส่งid(อาจใช้<input type="hidden">)
- รับค่า
update_student.php(ไฟล์รับข้อมูลแก้ไข):include 'db_connect.php';- รับค่าทั้ง
id,first_name,last_nameฯลฯ จาก$_POST - เขียนคำสั่ง SQL
UPDATE students SET first_name = ?, last_name = ? ... WHERE id = ? - เมื่ออัปเดตเสร็จ ให้เด้งกลับไปหน้า
index.php
🔵 D – Delete (ลบข้อมูล)
สร้างไฟล์ delete_student.php:
include 'db_connect.php';- รับค่า
idที่ส่งมาทาง URL (ด้วย$_GET['id']) - เขียนคำสั่ง SQL
DELETE FROM students WHERE id = ? - เมื่อลบเสร็จ ให้เด้งกลับไปหน้า
index.php - (Tip!) เพื่อความปลอดภัย ควรสั่งให้มี JavaScript
confirm('คุณแน่ใจหรือไม่ที่จะลบ?')ก่อนที่จะกดลิงก์มายังไฟล์นี้
บทสรุป: ก้าวแรกสู่การเป็นนักพัฒนาเว็บ
เพียงเท่านี้ คุณก็ได้ระบบจัดการข้อมูลนักเรียน (Student CRUD) ที่เป็นพื้นฐานและทรงพลังแล้ว! แม้ว่าหน้าตาอาจจะยังไม่สวยงาม (เพราะยังไม่ได้ตกแต่งด้วย CSS หรือ Bootstrap) แต่ “ตรรกะ” และ “การทำงานหลังบ้าน” นั้นเสร็จสมบูรณ์
นี่คือโปรเจกต์ “Hello, World!” ของโลกการพัฒนาฐานข้อมูล และเป็นก้าวแรกที่สำคัญที่จะนำคุณไปสู่การสร้างระบบที่ซับซ้อนยิ่งขึ้น เช่น ระบบล็อกอิน, ระบบลงทะเบียนเรียน, หรือระบบตัดเกรดต่อไปค่ะ



