Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Làm CRUD bằng PHP thuần: thêm, sửa, xóa, hiển thị dữ liệu
Hướng Dẫn Đồ ÁnLập Trình Web

Làm CRUD bằng PHP thuần: thêm, sửa, xóa, hiển thị dữ liệu

Chia sẻ
Chia sẻ

Khi xây dựng một ứng dụng web, một trong những tính năng cốt lõi cần có là CRUD – viết tắt của Create, Read, Update và Delete. Đây là những thao tác cơ bản cho phép người dùng tương tác với cơ sở dữ liệu như thêm mới, xem, chỉnh sửa và xóa thông tin. Trong PHP thuần (thuần túy, không dùng framework), việc xây dựng CRUD giúp bạn nắm chắc nền tảng lập trình web.

Nếu bạn chưa quen với cách kết nối cơ sở dữ liệu MySQL bằng PDO trong PHP hoặc đang phân vân giữa việc dùng PDO và MySQLi, hãy xem bài so sánh chi tiết giữa MySQLi và PDO. Ngoài ra, để tạo hệ thống quản lý người dùng hoàn chỉnh, bạn có thể tham khảo thêm bài giữ đăng nhập bằng Session trong PHPtạo form đăng nhập có validate trong PHP thuần. Những kiến thức đó sẽ giúp bạn xây dựng nền tảng vững chắc trước khi bước vào xây dựng hệ thống CRUD hoàn chỉnh.

Cài đặt môi trường và tạo cơ sở dữ liệu

Yêu cầu cơ bản

Để bắt đầu, bạn cần một môi trường hỗ trợ PHP và MySQL. Bạn có thể sử dụng các công cụ như XAMPP, MAMP hoặc Laragon. Ngoài ra, cần trình duyệt web và phần mềm soạn thảo mã nguồn (VS Code, Sublime…).

Kết nối giữa PHP và cơ sở dữ liệu sẽ sử dụng MySQLi. Chúng ta sẽ tạo một bảng đơn giản có tên users gồm các trường: ID, tên, email và địa chỉ.

Tạo cơ sở dữ liệu và bảng

Chúng ta bắt đầu bằng việc tạo cơ sở dữ liệu và bảng trong phpMyAdmin hoặc dòng lệnh MySQL. Việc này là bước tiền đề cho các thao tác CRUD sau này.

CREATE DATABASE crud_demo;

USE crud_demo;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    address TEXT
);

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

Tạo file kết nối db.php

Việc kết nối cơ sở dữ liệu cần được thực hiện trong một file riêng để tái sử dụng dễ dàng. File này sẽ được include trong mọi thao tác như thêm, sửa, xóa hoặc hiển thị dữ liệu.

Chúng ta sẽ tạo file db.php chứa thông tin đăng nhập vào MySQL và khởi tạo đối tượng kết nối.

<?php
$host = "localhost";
$user = "root";
$password = "";
$dbname = "crud_demo";

$conn = new mysqli($host, $user, $password, $dbname);

if ($conn->connect_error) {
    die("Kết nối thất bại: " . $conn->connect_error);
}
?>

Hiển thị dữ liệu (READ)

Tạo giao diện danh sách người dùng

Chúng ta sẽ tạo file index.php để hiển thị toàn bộ dữ liệu từ bảng users. Đây là bước “Read” trong CRUD – cho phép người dùng xem danh sách hiện có.

Dữ liệu sẽ được lấy bằng truy vấn SELECT * FROM users và hiển thị dưới dạng bảng HTML. Mỗi dòng sẽ có nút “Sửa” và “Xóa” tương ứng.

<?php include 'db.php'; ?>

<h2>Danh sách người dùng</h2>
<a href="create.php">Thêm người dùng mới</a>
<table border="1" cellpadding="10">
    <tr>
        <th>ID</th><th>Tên</th><th>Email</th><th>Địa chỉ</th><th>Hành động</th>
    </tr>
    <?php
    $result = $conn->query("SELECT * FROM users");
    while ($row = $result->fetch_assoc()):
    ?>
    <tr>
        <td><?= $row['id']; ?></td>
        <td><?= $row['name']; ?></td>
        <td><?= $row['email']; ?></td>
        <td><?= $row['address']; ?></td>
        <td>
            <a href="edit.php?id=<?= $row['id']; ?>">Sửa</a> | 
            <a href="delete.php?id=<?= $row['id']; ?>" onclick="return confirm('Bạn chắc chắn muốn xóa?')">Xóa</a>
        </td>
    </tr>
    <?php endwhile; ?>
</table>

Thêm dữ liệu mới (CREATE)

Giao diện thêm người dùng

Chúng ta sẽ tạo file create.php với một form để nhập tên, email và địa chỉ. Sau khi người dùng gửi form, dữ liệu sẽ được xử lý và lưu vào bảng users.

Form sẽ sử dụng phương thức POST, và dữ liệu sẽ được kiểm tra trước khi insert vào database.

<!-- create.php -->
<h2>Thêm người dùng mới</h2>
<form method="POST">
    Tên:<br><input type="text" name="name" required><br>
    Email:<br><input type="email" name="email" required><br>
    Địa chỉ:<br><textarea name="address"></textarea><br><br>
    <input type="submit" name="submit" value="Lưu">
</form>

<?php
include 'db.php';

if (isset($_POST['submit'])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $address = $_POST['address'];

    $stmt = $conn->prepare("INSERT INTO users (name, email, address) VALUES (?, ?, ?)");
    $stmt->bind_param("sss", $name, $email, $address);
    $stmt->execute();

    echo "Thêm thành công. <a href='index.php'>Về danh sách</a>";
}
?>

Sửa dữ liệu (UPDATE)

Giao diện chỉnh sửa người dùng

File edit.php sẽ thực hiện 2 nhiệm vụ: hiển thị thông tin hiện tại của người dùng và cập nhật thông tin mới khi người dùng gửi form. Dữ liệu được lấy ra từ bảng users dựa vào ID trên URL.

Chúng ta sẽ kiểm tra $_GET['id'], sau đó load dữ liệu lên form. Khi form được submit, sẽ chạy câu lệnh UPDATE.

<?php
include 'db.php';
$id = $_GET['id'];

$result = $conn->query("SELECT * FROM users WHERE id = $id");
$row = $result->fetch_assoc();
?>

<h2>Chỉnh sửa người dùng</h2>
<form method="POST">
    Tên:<br><input type="text" name="name" value="<?= $row['name'] ?>"><br>
    Email:<br><input type="email" name="email" value="<?= $row['email'] ?>"><br>
    Địa chỉ:<br><textarea name="address"><?= $row['address'] ?></textarea><br><br>
    <input type="submit" name="update" value="Cập nhật">
</form>

<?php
if (isset($_POST['update'])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $address = $_POST['address'];

    $stmt = $conn->prepare("UPDATE users SET name=?, email=?, address=? WHERE id=?");
    $stmt->bind_param("sssi", $name, $email, $address, $id);
    $stmt->execute();

    echo "Cập nhật thành công. <a href='index.php'>Quay lại</a>";
}
?>

Xóa dữ liệu (DELETE)

Xác nhận và xử lý xóa

Khi người dùng nhấn nút “Xóa”, URL sẽ chứa tham số id, và file delete.php sẽ xử lý truy vấn xóa dựa vào ID này. Trước khi thực hiện, bạn nên xác nhận hành động xóa bằng JavaScript hoặc xác thực lại phía server.

<?php
include 'db.php';

$id = $_GET['id'];
$stmt = $conn->prepare("DELETE FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();

echo "Xóa thành công. <a href='index.php'>Về danh sách</a>";
?>

Bổ sung thêm

Tránh SQL Injection

Luôn sử dụng prepare()bind_param() để tránh SQL Injection. Không nên đưa biến trực tiếp vào truy vấn SQL mà không xử lý.

Kiểm tra dữ liệu đầu vào

Ngoài ra, bạn nên kiểm tra ràng buộc dữ liệu (validation) như độ dài, định dạng email trước khi insert/update.

Tìm kiếm và phân trang

Bạn có thể mở rộng dự án bằng cách thêm tính năng tìm kiếm theo tên/email, hoặc phân trang danh sách bằng LIMIT/OFFSET. Điều này sẽ tăng tính thực tế cho đồ án hoặc sản phẩm thật.

Kết luận

Qua bài viết này, bạn đã được hướng dẫn từng bước để xây dựng hệ thống CRUD hoàn chỉnh bằng PHP thuần. Từ việc thiết lập cơ sở dữ liệu, tạo kết nối, hiển thị dữ liệu, thêm mới, chỉnh sửa cho đến xóa thông tin – tất cả đều được thực hiện bằng kỹ thuật cơ bản nhưng hiệu quả.

Việc hiểu rõ quy trình CRUD sẽ giúp bạn dễ dàng chuyển sang các framework hiện đại sau này như Laravel hay Symfony. Đây là nền móng không thể thiếu cho mọi lập trình viên backend PHP. Hãy thực hành, thử nghiệm và mở rộng hệ thống này để biến nó thành một phần trong đồ án hoặc dự án thực tế của bạn.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!