mysql sum()和php表中不工作的特定用户的动态行

utugiqy6  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(380)

我有困难创建一个动态表使用mysql数据库。。。我的数据库有这个;

userid | product | amount
2 | cat | 5
2 | dog | 3
2 | cat | 5
3 | cat | 1
3 | dog | 2

我想得到一个表,对每个用户每个产品的数量求和,这样当用户访问一个特定的页面时,他们可以看到每个产品的总数(例如用户2);

Product | Amount
cat | 10
dog | 3

这是我的php代码,我放在一起,但似乎我的总和函数不工作,我不能找出它。。。提前谢谢!

$userid = get_user_id()
$amountperproduct = mysqli_query($con,"SELECT $userid SUM(amount) FROM wp_payout_history GROUP BY product");

echo "<table border='1'>
<tr>
<th>product</th>
<th>grand sum</th>
</tr>";
if (mysqli_num_rows($amountperproduct)>0){
while($row2 = mysqli_fetch_array($amountperproduct))
{
echo "<tr>";
echo "<td>" . $row2['product'] . "</td>";
echo "<td>" . $row2['amount'] . "</td>";
echo "</tr>";
}
}
echo "</table>";
puruo6ea

puruo6ea1#

使用聚合函数时,必须 GROUP BY 出现在 SELECT 部分(在您的例子中:userid)。
现在似乎有很多拼写错误,比如 $ 在select中签名,缺少逗号等。
您可能需要这样一个查询:

SELECT userid, product, SUM(amount) AS total FROM wp_payout_history GROUP BY userid, product

这将创建一个大表,其中包含您要查找的所有信息。如果您希望这样的表只供一个用户使用,请使用 WHERE 零件,例如:

SELECT product, SUM(amount) AS total FROM wp_payout_history WHERE userid = '$userid' GROUP BY product

相关问题