我在使用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代码,但似乎我的sum函数不起作用,我无法弄明白...提前谢谢!
$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>";
答案 0 :(得分:1)
使用聚合函数时,您必须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