当前位置:网站首页 >  教程

从零用PHP+MySQL快速搭建可调试的轻量级电商商品综合排名系统

时间:2026年05月23日 03:24:51 来源:易频IT社区

前置准备

确保电脑已安装以下环境,无安装经验可直接点击链接获取对应教程/一键安装包

安装PHPStudy后启动Apache和MySQL服务,启动成功图标会变绿。

数据库搭建

1. 创建数据库和账号

打开PHPStudy的「数据库」面板,点击「新建数据库」,按以下配置填写:

  • 数据库名:shop_rank
  • 用户名:rank_user
  • 密码:rank_123456
  • 字符集:utf8mb4(支持emoji等特殊字符)

创建完成后点击「管理」进入phpMyAdmin。

2. 导入商品数据表结构+测试数据

在phpMyAdmin左侧选择shop_rank数据库,点击顶部「SQL」标签,复制粘贴以下代码,点击「执行」:

```sql -- 创建商品表 CREATE TABLE `products` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '商品ID', `name` varchar(100) NOT NULL COMMENT '商品名称', `price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '价格', `sales` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '销量', `rating` decimal(3,2) unsigned NOT NULL DEFAULT '5.00' COMMENT '评分(0-5)', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上架时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='电商商品表'; -- 插入10条测试数据 INSERT INTO `products` (`name`, `price`, `sales`, `rating`, `create_time`) VALUES ('无线蓝牙耳机', 199.00, 1256, 4.7, '2024-01-15 10:00:00'), ('便携充电宝', 89.00, 3421, 4.6, '2024-02-02 14:30:00'), ('机械键盘', 299.00, 876, 4.9, '2024-03-10 09:15:00'), ('智能手表', 899.00, 456, 4.8, '2024-03-25 16:00:00'), ('快充数据线', 29.90, 5678, 4.5, '2024-01-05 08:00:00'), ('游戏鼠标', 159.00, 987, 4.7, '2024-02-20 11:20:00'), ('笔记本支架', 49.00, 2345, 4.4, '2024-01-25 13:40:00'), ('4K高清摄像头', 399.00, 321, 4.8, '2024-04-01 07:50:00'), ('无线鼠标垫', 79.00, 654, 4.6, '2024-03-05 10:30:00'), ('降噪头戴耳机', 599.00, 1098, 4.9, '2024-02-10 15:00:00'); ```

后端排名逻辑实现

1. 创建连接数据库文件

从零用PHP+MySQL快速搭建可调试的轻量级电商商品综合排名系统

打开PHPStudy的「网站」面板,找到默认网站根目录(通常是C:\phpstudy_pro\WWW),新建文件夹shop_rank,在里面创建文件db_connect.php,复制粘贴以下代码:

```php setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die("数据库连接失败:" . $e->getMessage()); } ?> ```

2. 实现综合排名逻辑

在shop_rank文件夹下创建rank.php文件,这里采用「销量×权重0.5 + 评分×100×权重0.3 - (当前时间-上架时间天数)×权重0.2」的公式,可根据需求直接修改$weights数组的数值调整权重

```php 0.5, 'rating' => 0.3, 'days' => 0.2 // 上架天数是减分项,值越高新品越靠前 ]; try { // 预处理查询语句,计算综合得分并排序 $sql = "SELECT id, name, price, sales, rating, create_time, ROUND( (sales :sales_weight) + (rating 100 :rating_weight) - (DATEDIFF(NOW(), create_time) :days_weight), 2 ) AS total_score FROM products ORDER BY total_score DESC"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':sales_weight', $weights['sales']); $stmt->bindParam(':rating_weight', $weights['rating']); $stmt->bindParam(':days_weight', $weights['days']); $stmt->execute(); $products = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch(PDOException $e) { die("查询失败:" . $e->getMessage()); } ?> ```

前端展示页面

在shop_rank文件夹下创建index.php文件,这是访问入口,直接复制粘贴:

```php 电商商品综合排名 轻量级电商商品综合排名

当前综合得分公式

综合得分 = 销量× + 评分×100× - 上架天数×

(修改rank.php的$weights数组后刷新页面即可更新)

$product): ?>
排名 商品名称 价格(元) 销量 评分 上架时间 综合得分
```

测试与调试

  • 访问入口:打开浏览器,输入http://localhost/shop_rank/,即可看到排名结果
  • 调整权重:用VSCode打开rank.php,修改$weights数组的数值后刷新浏览器
  • 添加/修改测试数据:进入phpMyAdmin的shop_rank.products表,点击「插入」或「编辑」操作
标签 电商排名

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图