Как добавить различные значения (строки) столбца, используя цикл while, разделенный датой и именем пользователя - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь отобразить платеж пользователей, разделенных датой и именем пользователя i.e (GROUP BY date, username).Это таблица базы данных

id | username | income |  date
   |          |        |
1  |   super  |  750   |  2019-09-21
2  |   super  |  750   |  2019-09-21
3  |   super  |   1    |  2019-09-22
4  |   super  |  750   |  2019-09-22

Это код, который я пытаюсь

$income = 0;
while($row = mysqli_fetch_array($query)){
   $income += $row['income'];
}

Это то, что я получаю, когда вижу дату записи мудро

id | username | income |  date
   |          |        |
1  |   super  |  750   |  2019-09-21
2  |   super  |  751   |  2019-09-22

И это то, что я ожидаю

id | username | income |  date
   |          |        |
1  |   super  |  1500  |  2019-09-21
2  |   super  |  751   |  2019-09-22

Второй вариант, который я пробую, это

Запрос sql

SELECT id, username, income, COUNT(*) AS total, date FROM payment
GROUP BY date, username

php код

$income = 0;
while($row = mysqli_fetch_array($query)){
   $income = $row['income'] * $row['total'];
}

И вот что я получаю

id | username | income |  date
   |          |        |
1  |   super  |  1500  |  2019-09-21
2  |   super  |   2    |  2019-09-22

Я ожидаю

id | username | income |  date
   |          |        |
1  |   super  |  1500  |  2019-09-21
2  |   super  |  751   |  2019-09-22

В моеммнение, что эта проблема возникает из-за value 1 в строке, но не знаю, как это исправить.Будем благодарны за любые предложения
ПРИМЕЧАНИЕ - 3rd, 5th, 7th and 10th row столбца income будет содержать значение 1

1 Ответ

1 голос
/ 22 сентября 2019

Если вы группируете его по имени пользователя и дате, вам нужно сложить доходы для всех строк (используя SUM())

Таким образом, SQL должен выглядеть примерно так ...

SELECT date, username, SUM(income) AS total 
    FROM payment
    GROUP BY date, username
...