php - 如何根据受欢迎程度在在线商店订购商品

标签 php mysql pdo

我的主页上显示了一系列商品,我想按受欢迎程度排序。我有一个名为 sales 的列,它是产品销售量的计数器。

如何使用此列和/或其他列来确定在主页上显示哪些项目?我显然不能只使用 sales 来搜索热门商品,因为销量最高的商品将主导主页 - 我想要一个平衡的查询。

如果可能的话,查询也应该只在特定的时间范围内发生,例如过去一周等。

这是我的查询:

$popular_items = DB::fetch("SELECT * FROM `products` ORDER BY `sales` DESC LIMIT 10");

最佳答案

您必须首先定义“受欢迎程度”:按观看次数、按销量还是按购物车中的计数?

假设您有 2 个因素:浏览量销售额。您可以根据这些因素与特定“新鲜期”的比率进行排序:

SELECT * FROM `products` 
WHERE DATEDIFF(last_update_date, CURDATE()) < 30
ORDER BY (pageview * 0.7 + sales * 0.3) DESC

类似的东西(因为我不知道表中的列名称)

<小时/>

如果您想获得平衡的结果,可以使用:

SELECT * FROM `products` ORDER BY RAND() DESC

这将返回随机结果。您可能也需要LIMIT(列出所有产品毫无意义)。

旁注:

  • 建议仅选择有用的列(避免使用 SELECT *)

关于php - 如何根据受欢迎程度在在线商店订购商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29382435/

相关文章:

PHP/MySQL - "BEGIN...COMMIT"不工作

php - SMTP 连接 () 失败。消息未发送。邮件错误 : SMTP Connect() failed

php - 如何在 MySQL 的单元格中存储单个项目的多个值

mysql - 当发送DELETE查询时,innoDB是从数据库中逐条删除数据,还是先创建一个要删除的数据列表?

php - 为什么在 PDO 中使用 bindParam 而不用 array()?

php - 可恢复的 fatal error : Object of class PDOStatement could not be converted to string in - index. php 第 23 行

php - 使用服务器推送在复杂页面中进行多用户编辑

php - 停止 PHP 网站中没有 .htaccess 的目录列表

mysql - 分解大型 MySql 查询是有益的

php - 在 pdo pql 语句中使用对象属性值