作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用以前订单的信息制作“畅销书”列表。我目前拥有的是这样的;
Product Quantity
2227 30
1722 3
1851 7
2227 10
1722 4
1863 1
etc....
第一列(产品)是数据库中每个产品的唯一 ID。数量当然是指已售出的商品数量。每一行对应一个订单。因此 ID 2227
在此列表中出现两次。
如何对这些数据进行排序,以便获得 ID 2227
的总共销售次数?
我现在的 PHP 是:
$SQL_best = "SELECT c.company, co.id, cod.productId, cod.quantity
FROM customers c
LEFT JOIN customers_orders co ON c.id = co.custId
LEFT JOIN customers_orders_details cod ON co.id = cod.orderId
WHERE c.reseller =1
AND c.status != 99
AND c.id = ".$intCustomerId;
$result_best = $objDB->sqlExecute($SQL_best);
*some html code here*
<table style="margin:0px auto;">
<tr>
<th>Product</th>
<th>Quantity</th>
</tr>
<?php
while($obj_best = $objDB->getObject($result_best)) {
if ($obj_best->quantity > 0) { // don't include negatve quantaties (RMA's / refunds)
echo "<tr>";
echo "<td>".$obj_best->productId."</td>";
echo "<td>".$obj_best->quantity."</td>";
echo "</tr>";
}
}
?>
</table>
MySQL查询
所以我需要将所有 $obj_best->productId
加在一起。在这种情况下我该怎么做?或者我应该编辑我的查询?
最佳答案
这是一个想法,你可以像这样更改 SQL 字符串:
$SQL_best = "SELECT c.company, co.id, cod.productId,
SUM(cod.quantity) AS quantity
FROM customers c
LEFT JOIN customers_orders co ON c.id = co.custId
LEFT JOIN customers_orders_details cod ON co.id = cod.orderId
WHERE c.reseller = 1
AND c.status != 99
AND c.id = " . $intCustomerId . "
GROUP BY cod.productId
HAVING quantity > 0
ORDER BY quantity DESC";
关于php - 如何制作畅销书排行榜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361371/
我刚刚浏览了 amazon.com,引起我注意的一件有趣的事情是他们如何计算畅销书。 我正在考虑编写一个示例程序来计算这个。我在想,假设我正在计算当月的畅销书,而不仅仅是计算单本书的销量并显示前 10
我是一名优秀的程序员,十分优秀!