ลงมือทำ! สร้างระบบบันทึกข้อมูลนักเรียน (Student CRUD) ด้วย PHP+MySQL ฉบับจับมือทำ

ในยุคที่ทุกอย่างเป็นดิจิทัล การจัดการข้อมูลนักเรียนด้วยกระดาษหรือไฟล์ 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 ซึ่งมักมาคู่กัน)

  1. เปิดเครื่องมือ: ใช้เครื่องมืออย่าง phpMyAdmin (ซึ่งมีอยู่ในโปรแกรมจำลองเซิร์ฟเวอร์อย่าง XAMPP หรือ MAMP)
  2. สร้าง Database: สร้างฐานข้อมูล (Database) ใหม่ เช่น ชื่อ school_db
  3. สร้าง 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 ไฟล์:

  1. add_student.html (หน้าฟอร์ม):
    • สร้างฟอร์ม HTML ธรรมดา ที่มีช่อง <input> สำหรับกรอก first_name, last_name, email, class
    • ฟอร์มนี้ต้องตั้งค่า method="POST" และ action="save_student.php"
  2. 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() เพื่อดึงข้อมูล
  • ใช้ while loop เพื่อวนลูปข้อมูลที่ได้มาทีละแถว
  • แสดงผลข้อมูลในตาราง HTML (<table>)
  • ในแต่ละแถว ให้สร้างลิงก์ “แก้ไข” และ “ลบ” โดยแนบรหัส id ของนักเรียนไปด้วย (เช่น <a href="edit.php?id=5">แก้ไข</a>)

🔵 U – Update (แก้ไขข้อมูล)

ต้องใช้ 2 ไฟล์ (คล้ายกับ Create):

  1. 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">)
  2. 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!” ของโลกการพัฒนาฐานข้อมูล และเป็นก้าวแรกที่สำคัญที่จะนำคุณไปสู่การสร้างระบบที่ซับซ้อนยิ่งขึ้น เช่น ระบบล็อกอิน, ระบบลงทะเบียนเรียน, หรือระบบตัดเกรดต่อไปค่ะ

Scroll to Top