Tạo bởi Trần Văn Điêp|
Học PHP

[Video] Viết website quản lý sinh viên PHP & MySQL - Lập Trình PHP

Hướng dẫn chữa bài tập


Video tại lớp học khác


Trong thời đại công nghệ số, việc quản lý dữ liệu không còn được thực hiện thủ công như trước. Các hệ thống quản lý trực tuyến ra đời giúp tiết kiệm thời gian, giảm sai sót và tăng hiệu quả làm việc. Một trong những bài tập phổ biến nhất khi học lập trình PHP và MySQL là xây dựng website quản lý sinh viên — dự án nhỏ nhưng bao quát toàn bộ kiến thức nền tảng trong lập trình web.

Thông qua bài viết này, bạn sẽ được hướng dẫn chi tiết cách xây dựng website quản lý sinh viên bằng PHP & MySQL, từ thiết kế cơ sở dữ liệu, kết nối với PHP, cho đến thao tác thêm, sửa, xóa dữ liệu. Không chỉ là bài thực hành đơn thuần, đây còn là bước đệm giúp bạn nắm chắc kỹ năng lập trình backend, hiểu sâu hơn về CRUD (Create - Read - Update - Delete) và học được cách tối ưu hệ thống quản lý dữ liệu trong thực tế.

Nếu bạn đang tìm kiếm một dự án PHP thực hành hoàn chỉnh, vừa giúp củng cố kiến thức vừa có thể đưa vào portfolio cá nhân, thì đây chính là bài viết dành cho bạn. Hãy cùng bắt đầu hành trình chinh phục bài toán quản lý sinh viên từ con số 0!


Tổng quan về dự án quản lý sinh viên

Mục tiêu của hệ thống

Dự án này mô phỏng một hệ thống quản lý sinh viên cơ bản, bao gồm các chức năng chính:

  • Thêm mới sinh viên: Nhập thông tin như họ tên, mã sinh viên, ngày sinh, lớp, điểm trung bình.

  • Xem danh sách sinh viên: Hiển thị toàn bộ dữ liệu dưới dạng bảng.

  • Sửa thông tin sinh viên: Cho phép chỉnh sửa thông tin khi có thay đổi.

  • Xóa sinh viên: Loại bỏ sinh viên khỏi cơ sở dữ liệu.

Hệ thống này có thể mở rộng để tích hợp thêm các tính năng nâng cao như tìm kiếm sinh viên, phân trang, thống kê kết quả học tập, hoặc phân quyền quản trị.


Thiết kế cơ sở dữ liệu MySQL

Cấu trúc bảng sinhvien

Đầu tiên, bạn cần tạo cơ sở dữ liệu và bảng sinh viên trong MySQL:

CREATE DATABASE quanlysinhvien; USE quanlysinhvien; CREATE TABLE sinhvien ( id INT AUTO_INCREMENT PRIMARY KEY, masv VARCHAR(10) NOT NULL, hoten VARCHAR(100) NOT NULL, ngaysinh DATE, lop VARCHAR(50), diemTB FLOAT );

Giải thích:

  • id: Khóa chính, định danh duy nhất cho từng sinh viên.

  • masv: Mã sinh viên, không được trùng lặp.

  • hoten, lop: Lưu thông tin cơ bản.

  • diemTB: Lưu điểm trung bình.

Lời khuyên:

  • Nên đặt tên cột rõ nghĩa, tránh viết tắt quá nhiều.

  • Dùng kiểu dữ liệu phù hợp để tối ưu hiệu năng.


Kết nối PHP với cơ sở dữ liệu MySQL

Để PHP giao tiếp với MySQL, bạn có thể sử dụng MySQLi hoặc PDO. Ví dụ dưới đây minh họa cách kết nối bằng MySQLi:

<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "quanlysinhvien"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Kết nối thất bại: " . $conn->connect_error); } ?>

Lời khuyên chuyên môn:

  • Khi làm việc với dự án lớn, bạn nên tách phần kết nối này thành một file riêng (db_connect.php) để dễ tái sử dụng.

  • Luôn kiểm tra kết nối thành công trước khi thao tác với dữ liệu.


Giao diện thêm sinh viên (Create)

Tạo form HTML cho phép người dùng nhập thông tin sinh viên mới:

<form action="add_student.php" method="POST"> <label>Mã sinh viên:</label> <input type="text" name="masv" required><br> <label>Họ tên:</label> <input type="text" name="hoten" required><br> <label>Ngày sinh:</label> <input type="date" name="ngaysinh"><br> <label>Lớp:</label> <input type="text" name="lop"><br> <label>Điểm TB:</label> <input type="number" step="0.01" name="diemTB"><br> <button type="submit">Thêm sinh viên</button> </form>

Code xử lý (add_student.php):

include 'db_connect.php'; if ($_SERVER["REQUEST_METHOD"] == "POST") { $masv = $_POST['masv']; $hoten = $_POST['hoten']; $ngaysinh = $_POST['ngaysinh']; $lop = $_POST['lop']; $diemTB = $_POST['diemTB']; $sql = "INSERT INTO sinhvien (masv, hoten, ngaysinh, lop, diemTB) VALUES ('$masv', '$hoten', '$ngaysinh', '$lop', '$diemTB')"; if ($conn->query($sql) === TRUE) { echo "Thêm sinh viên thành công!"; } else { echo "Lỗi: " . $sql . "<br>" . $conn->error; } }

Hiển thị danh sách sinh viên (Read)

Tạo file list_student.php để hiển thị danh sách sinh viên:

include 'db_connect.php'; $sql = "SELECT * FROM sinhvien"; $result = $conn->query($sql); ?> <table border="1"> <tr> <th>ID</th> <th>Mã SV</th> <th>Họ tên</th> <th>Lớp</th> <th>Điểm TB</th> <th>Hành động</th> </tr> <?php while($row = $result->fetch_assoc()) { echo "<tr> <td>{$row['id']}</td> <td>{$row['masv']}</td> <td>{$row['hoten']}</td> <td>{$row['lop']}</td> <td>{$row['diemTB']}</td> <td> <a href='edit_student.php?id={$row['id']}'>Sửa</a> | <a href='delete_student.php?id={$row['id']}'>Xóa</a> </td> </tr>"; } ?> </table>

Lời khuyên SEO & UX:

  • Sử dụng bảng có viền, căn chỉnh đẹp mắt để tăng trải nghiệm người dùng.

  • Có thể kết hợp với Bootstrap hoặc Tailwind để làm đẹp giao diện.


Sửa thông tin sinh viên (Update)

Bước 1: Lấy thông tin sinh viên cần sửa

include 'db_connect.php'; $id = $_GET['id']; $result = $conn->query("SELECT * FROM sinhvien WHERE id=$id"); $row = $result->fetch_assoc();

Bước 2: Hiển thị form và cập nhật dữ liệu

<form method="POST"> <input type="text" name="hoten" value="<?php echo $row['hoten']; ?>"><br> <input type="text" name="lop" value="<?php echo $row['lop']; ?>"><br> <input type="number" step="0.01" name="diemTB" value="<?php echo $row['diemTB']; ?>"><br> <button type="submit" name="update">Cập nhật</button> </form> <?php if(isset($_POST['update'])){ $hoten = $_POST['hoten']; $lop = $_POST['lop']; $diemTB = $_POST['diemTB']; $conn->query("UPDATE sinhvien SET hoten='$hoten', lop='$lop', diemTB='$diemTB' WHERE id=$id"); echo "Cập nhật thành công!"; } ?>

Xóa sinh viên (Delete)

include 'db_connect.php'; $id = $_GET['id']; $conn->query("DELETE FROM sinhvien WHERE id=$id"); header("Location: list_student.php");

Lưu ý:

  • Nên thêm xác nhận trước khi xóa để tránh thao tác nhầm.

  • Có thể dùng JavaScript để hiển thị hộp thoại “Bạn có chắc chắn muốn xóa?”


Cải tiến hệ thống

Sau khi hoàn thành chức năng CRUD, bạn có thể mở rộng thêm:

1. Tìm kiếm sinh viên

Thêm ô tìm kiếm theo tên hoặc mã sinh viên.

2. Phân trang

Hiển thị 10 sinh viên mỗi trang để tránh danh sách quá dài.

3. Phân quyền người dùng

Chỉ cho phép admin thêm, sửa, xóa dữ liệu.

4. Giao diện đẹp hơn

Kết hợp Bootstrap hoặc Tailwind CSS để website trở nên chuyên nghiệp hơn.


Kết luận

Xây dựng website quản lý sinh viên bằng PHP & MySQL là bài tập nền tảng nhưng cực kỳ quan trọng trong quá trình học lập trình web. Qua dự án này, bạn không chỉ học được cách tạo – đọc – sửa – xóa dữ liệu (CRUD) mà còn hiểu cách kết nối PHP với MySQL, cách xử lý form, và cách tổ chức mã nguồn khoa học.

Nếu bạn là người mới bắt đầu, hãy thử làm theo từng bước trong bài viết này, sau đó dần mở rộng tính năng. Khi đã nắm chắc, bạn có thể tự tin phát triển các hệ thống lớn hơn như quản lý lớp học, quản lý điểm thi hoặc hệ thống đăng ký học phần online.

👉 Hãy bắt tay vào code ngay hôm nay — vì chỉ khi bạn thực hành, bạn mới thật sự làm chủ được PHP và MySQL!

Phản hồi từ học viên

5

Tổng 0 đánh giá

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó