确保电脑已安装以下环境,无安装经验可直接点击链接获取对应教程/一键安装包
安装PHPStudy后启动Apache和MySQL服务,启动成功图标会变绿。
打开PHPStudy的「数据库」面板,点击「新建数据库」,按以下配置填写:
创建完成后点击「管理」进入phpMyAdmin。
在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'); ```
打开PHPStudy的「网站」面板,找到默认网站根目录(通常是C:\phpstudy_pro\WWW),新建文件夹shop_rank,在里面创建文件db_connect.php,复制粘贴以下代码:
```php setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die("数据库连接失败:" . $e->getMessage()); } ?> ```在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综合得分 = 销量×= $weights['sales'] ?> + 评分×100×= $weights['rating'] ?> - 上架天数×= $weights['days'] ?>
(修改rank.php的$weights数组后刷新页面即可更新)
| 排名 | 商品名称 | 价格(元) | 销量 | 评分 | 上架时间 | 综合得分 |
|---|---|---|---|---|---|---|
| = $index + 1 ?> | = htmlspecialchars($product['name']) ?> | = $product['price'] ?> | = $product['sales'] ?> | = $product['rating'] ?> | = $product['create_time'] ?> | = $product['total_score'] ?> |
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图