PHP 语言 实现商品评论展示

PHP阿木 发布于 14 天前 3 次阅读


摘要:随着互联网的快速发展,电子商务平台日益增多,商品评论功能已成为用户了解商品质量、商家信誉的重要途径。本文将围绕PHP语言,详细解析商品评论展示系统的设计与实现,包括数据库设计、前端页面展示、后端逻辑处理等方面,旨在为PHP开发者提供参考。

一、

商品评论展示系统是电子商务平台的重要组成部分,它可以帮助用户了解商品的真实情况,提高购物体验。本文将使用PHP语言,结合MySQL数据库,实现一个简单的商品评论展示系统。

二、数据库设计

1. 数据库表结构

(1)商品表(products)

字段名 | 类型 | 说明

--- | --- | ---

id | int | 商品ID,主键,自增

name | varchar | 商品名称

price | decimal | 商品价格

description | text | 商品描述

(2)评论表(comments)

字段名 | 类型 | 说明

--- | --- | ---

id | int | 评论ID,主键,自增

product_id | int | 商品ID,外键,关联products表

user_id | int | 用户ID,外键,关联users表

content | text | 评论内容

create_time | datetime | 评论时间

(3)用户表(users)

字段名 | 类型 | 说明

--- | --- | ---

id | int | 用户ID,主键,自增

username | varchar | 用户名

password | varchar | 密码

email | varchar | 邮箱

2. 数据库创建与初始化

php

<?php


// 连接数据库


$conn = new mysqli("localhost", "root", "password", "database");

// 检查连接


if ($conn->connect_error) {


die("连接失败: " . $conn->connect_error);


}

// 创建商品表


$sql = "CREATE TABLE products (


id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,


name VARCHAR(30) NOT NULL,


price DECIMAL(10,2) NOT NULL,


description TEXT NOT NULL


)";

if ($conn->query($sql) === TRUE) {


echo "商品表创建成功";


} else {


echo "创建商品表时发生错误: " . $conn->error;


}

// 创建评论表


$sql = "CREATE TABLE comments (


id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,


product_id INT(6) NOT NULL,


user_id INT(6) NOT NULL,


content TEXT NOT NULL,


create_time DATETIME NOT NULL,


FOREIGN KEY (product_id) REFERENCES products(id),


FOREIGN KEY (user_id) REFERENCES users(id)


)";

if ($conn->query($sql) === TRUE) {


echo "评论表创建成功";


} else {


echo "创建评论表时发生错误: " . $conn->error;


}

// 创建用户表


$sql = "CREATE TABLE users (


id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,


username VARCHAR(30) NOT NULL,


password VARCHAR(30) NOT NULL,


email VARCHAR(50) NOT NULL


)";

if ($conn->query($sql) === TRUE) {


echo "用户表创建成功";


} else {


echo "创建用户表时发生错误: " . $conn->error;


}

$conn->close();


?>


三、前端页面展示

1. 商品列表页面

html

<!DOCTYPE html>


<html>


<head>


<title>商品列表</title>


</head>


<body>


<h1>商品列表</h1>


<div>


<?php


// 连接数据库


$conn = new mysqli("localhost", "root", "password", "database");

// 检查连接


if ($conn->connect_error) {


die("连接失败: " . $conn->connect_error);


}

// 查询商品信息


$sql = "SELECT FROM products";


$result = $conn->query($sql);

if ($result->num_rows > 0) {


// 输出数据


while($row = $result->fetch_assoc()) {


echo "<div>";


echo "<h2>" . $row["name"]. "</h2>";


echo "<p>价格:" . $row["price"]. "</p>";


echo "<p>描述:" . $row["description"]. "</p>";


echo "<a href='product.php?id=" . $row["id"]. "'>查看评论</a>";


echo "</div>";


}


} else {


echo "0 结果";


}

$conn->close();


?>


</div>


</body>


</html>


2. 商品评论页面

html

<!DOCTYPE html>


<html>


<head>


<title>商品评论</title>


</head>


<body>


<h1>商品评论</h1>


<div>


<?php


// 连接数据库


$conn = new mysqli("localhost", "root", "password", "database");

// 检查连接


if ($conn->connect_error) {


die("连接失败: " . $conn->connect_error);


}

// 获取商品ID


$product_id = $_GET["id"];

// 查询评论信息


$sql = "SELECT FROM comments WHERE product_id = $product_id ORDER BY create_time DESC";


$result = $conn->query($sql);

if ($result->num_rows > 0) {


// 输出数据


while($row = $result->fetch_assoc()) {


echo "<div>";


echo "<h3>" . $row["username"]. ":" . $row["content"]. "</h3>";


echo "<p>评论时间:" . $row["create_time"]. "</p>";


echo "</div>";


}


} else {


echo "暂无评论";


}

$conn->close();


?>


</div>


</body>


</html>


四、后端逻辑处理

1. 添加评论

php

<?php


// 连接数据库


$conn = new mysqli("localhost", "root", "password", "database");

// 检查连接


if ($conn->connect_error) {


die("连接失败: " . $conn->connect_error);


}

// 获取评论内容


$content = $_POST["content"];


$product_id = $_POST["product_id"];


$user_id = $_SESSION["user_id"]; // 假设用户已登录,获取用户ID

// 插入评论


$sql = "INSERT INTO comments (product_id, user_id, content, create_time) VALUES ($product_id, $user_id, '$content', NOW())";

if ($conn->query($sql) === TRUE) {


echo "评论成功";


} else {


echo "评论失败: " . $conn->error;


}

$conn->close();


?>


2. 用户登录与注册

php

<?php


// 连接数据库


$conn = new mysqli("localhost", "root", "password", "database");

// 检查连接


if ($conn->connect_error) {


die("连接失败: " . $conn->connect_error);


}

// 用户登录


if ($_SERVER["REQUEST_METHOD"] == "POST") {


$username = $_POST["username"];


$password = $_POST["password"];

$sql = "SELECT FROM users WHERE username = '$username' AND password = '$password'";


$result = $conn->query($sql);

if ($result->num_rows > 0) {


$_SESSION["user_id"] = $result->fetch_assoc()["id"];


echo "登录成功";


} else {


echo "用户名或密码错误";


}


}

// 用户注册


if ($_SERVER["REQUEST_METHOD"] == "POST") {


$username = $_POST["username"];


$password = $_POST["password"];


$email = $_POST["email"];

$sql = "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')";


if ($conn->query($sql) === TRUE) {


echo "注册成功";


} else {


echo "注册失败: " . $conn->error;


}


}

$conn->close();


?>


五、总结

本文详细介绍了使用PHP语言实现商品评论展示系统的过程,包括数据库设计、前端页面展示和后端逻辑处理。通过本文的学习,读者可以了解到PHP在电子商务平台中的应用,为实际项目开发提供参考。

需要注意的是,本文所提供的代码仅为示例,实际项目中可能需要根据具体需求进行调整和优化。为了提高系统的安全性,建议对用户输入进行验证和过滤,防止SQL注入等安全问题。