Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用按日期和用户名分隔的while循环添加列的不同值(行)_Php_Mysql_Sql_While Loop_Sum - Fatal编程技术网

Php 如何使用按日期和用户名分隔的while循环添加列的不同值(行)

Php 如何使用按日期和用户名分隔的while循环添加列的不同值(行),php,mysql,sql,while-loop,sum,Php,Mysql,Sql,While Loop,Sum,我试图显示以日期和用户名分隔的用户付款,即(按日期分组,用户名)。 这是数据库表 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 这就是我

我试图显示以日期和用户名分隔的用户付款
,即(按日期分组,用户名)
。 这是数据库表

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
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
id | username | income |  date
   |          |        |
1  |   super  |  1500  |  2019-09-21
2  |   super  |  751   |  2019-09-22
在我看来,出现此问题的原因是行中的
值1
,但不知道如何解决此问题。 如有任何建议,将不胜感激

注意-收入
列的
第三、第五、第七和第十行
将包含值
1
如果按用户名和日期分组,则需要将所有行的收入相加(使用
SUM()

所以SQL应该类似于

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