×

Tạo hệ thống đánh giá và bình luận sản phẩm trong PHP

Trong bối cảnh thương mại điện tử phát triển mạnh mẽ hiện nay, việc người tiêu dùng tìm kiếm và tham khảo ý kiến, đánh giá sản phẩm trước khi quyết định mua hàng trở nên vô cùng quan trọng. Để đáp ứng nhu cầu này, xây dựng một hệ thống đánh giá và bình luận dành riêng cho sản phẩm trên trang web của bạn là một ý tưởng hay. Bài viết này sẽ hướng dẫn bạn từng bước xây dựng hệ thống này bằng ngôn ngữ PHP, tích hợp với cơ sở dữ liệu MySQL.

1. Chuẩn bị cơ sở dữ liệu

Trước tiên, bạn cần tạo một cơ sở dữ liệu để lưu trữ thông tin sản phẩm, đánh giá và bình luận. Bạn có thể sử dụng MySQL để làm điều này.

Bước 1: Tạo bảng sản phẩm

CREATE TABLE products (
    product_id INT AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    product_description TEXT NOT NULL
);

Bước 2: Tạo bảng đánh giá

CREATE TABLE reviews (
    review_id INT AUTO_INCREMENT PRIMARY KEY,
    product_id INT NOT NULL,
    user_name VARCHAR(255) NOT NULL,
    rating INT CHECK (rating BETWEEN 1 AND 5),
    comment TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (product_id) REFERENCES products(product_id)
);

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

Hãy chắc chắn rằng bạn đã cài đặt PHP và MySQL. Tiếp theo, bạn cần một tập tin PHP để kết nối với cơ sở dữ liệu:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);

// Kiểm tra kết nối
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

3. Hiển thị sản phẩm và đánh giá

Đầu tiên, bạn cần tạo một trang để hiển thị thông tin sản phẩm và các đánh giá liên quan. Ví dụ, bạn có thể viết mã PHP dưới đây:

<?php
$product_id = $_GET['product_id'];

$sql = "SELECT product_name, product_description FROM products WHERE product_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $product_id);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    echo "<h1>" . $row['product_name'] . "</h1>";
    echo "<p>" . $row['product_description'] . "</p>";
}

// Hiển thị đánh giá
$sql = "SELECT user_name, rating, comment, created_at FROM reviews WHERE product_id = ? ORDER BY created_at DESC";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $product_id);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo "<h2>" . $row['user_name'] . "</h2>";
        echo "<p>Rating: " . $row['rating'] . "</p>";
        echo "<p>" . $row['comment'] . "</p>";
        echo "<p>" . $row['created_at'] . "</p>";
    }
} else {
    echo "No reviews yet.";
}
?>

4. Tạo form đánh giá

Để người dùng có thể thêm đánh giá mới, bạn cần một form:

<form method="POST" action="submit_review.php">
    <input type="hidden" name="product_id" value="<?php echo $product_id; ?>">
    Name: <input type="text" name="user_name" required><br>
    Rating: <input type="number" name="rating" min="1" max="5" required><br>
    Comment: <textarea name="comment" required></textarea><br>
    <input type="submit" value="Submit Review">
</form>

5. Xử lý form đánh giá

Khi người dùng gửi đánh giá, dữ liệu sẽ được gửi đến submit_review.php. Bạn cần xử lý và lưu trữ dữ liệu đó:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $product_id = $_POST['product_id'];
    $user_name = $_POST['user_name'];
    $rating = $_POST['rating'];
    $comment = $_POST['comment'];
    
    $sql = "INSERT INTO reviews (product_id, user_name, rating, comment) VALUES (?, ?, ?, ?)";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("isii", $product_id, $user_name, $rating, $comment);
    
    if ($stmt->execute()) {
        echo "Review submitted successfully.";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}
?>

Kết luận

Trên đây là hướng dẫn cơ bản giúp bạn xây dựng một hệ thống đánh giá và bình luận sản phẩm sử dụng PHP và MySQL. Nâng cao hơn, bạn có thể tích hợp thêm các tính năng như xác thực người dùng, phân trang cho đánh giá, hoặc thậm chí ứng dụng AJAX để làm cho trang web của bạn trở nên thân thiện và chuyên nghiệp hơn. Chúc bạn thành công!

Comments