mysql SUM () и динамические строки в таблице php для конкретного пользователя не работают - PullRequest
0 голосов
/ 07 июня 2018

У меня проблемы с созданием динамической таблицы с использованием базы данных 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>";

1 Ответ

0 голосов
/ 07 июня 2018

При использовании функций агрегирования вы ДОЛЖНЫ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...