Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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 获取我已将数据透视到HTML表中的报告数据_Php_Sql_Mariadb - Fatal编程技术网

Php 获取我已将数据透视到HTML表中的报告数据

Php 获取我已将数据透视到HTML表中的报告数据,php,sql,mariadb,Php,Sql,Mariadb,我有一个current SQL查询,如下所示: 选择 周 SUMCASE当周=“$week1”时,则1其他0结束为第1周总计, SUMCASE当周=“$week2”然后1或0结束为第2周总计, SUMCASE当WEEK='$week3'时,则1或0结束为WEEK_3_总计, SUMCASE当WEEK='$week4'时,则1或0结束为WEEK_4_总计, SUMCASE当周=“$week1”且类型=“退款”时,则1其他0结束为周退款, SUMCASE当周='week2'和类型='Return'时

我有一个current SQL查询,如下所示:

选择 周 SUMCASE当周=“$week1”时,则1其他0结束为第1周总计, SUMCASE当周=“$week2”然后1或0结束为第2周总计, SUMCASE当WEEK='$week3'时,则1或0结束为WEEK_3_总计, SUMCASE当WEEK='$week4'时,则1或0结束为WEEK_4_总计, SUMCASE当周=“$week1”且类型=“退款”时,则1其他0结束为周退款, SUMCASE当周='week2'和类型='Return'时,则1或0结束为第2周的退款, SUMCASE当WEEK='$week3'和TYPE='Return'时,则1或0结束为WEEK_3_Returns, SUMCASE当WEEK='$week4'和TYPE='Return'时,则1或0结束为WEEK_4_Returns, SUMCASE当WEEK='$week1'和TYPE='closure'时,则1 ELSE 0以WEEK_1_closure结束, SUMCASE当WEEK='$week2'和TYPE='closure'时,则1或0结束为WEEK_2_closure, SUMCASE当WEEK='$week3'和TYPE='closure'时,则1或0结束为WEEK_3_closure, SUMCASE当WEEK='$week4'和TYPE='closure'时,则1 ELSE 0以WEEK_4_closure结束, SUMCASE当WEEK='$week1'和历史记录(如“%rejected%”)为1时,其他0结束为WEEK_1_rejections, SUMCASE当WEEK='$week2'和历史记录(如“%rejected%”)为1时,其他0结束为WEEK_2_rejections, SUMCASE当WEEK='$week3'和历史记录(如“%rejected%”)为1时,其他0结束为WEEK_3_rejections, SUMCASE当WEEK='$week4'和历史记录(如“%rejected%”)为1时,其他0结束为WEEK_4_rejections 从…起 我的桌子 哪里 年份=“$SafeFY”和期间=“$SafePeriod” 分组 周 此查询可以工作并获取所需的数据,但由于我的操作方式,数据已被旋转

我只是这样做的,因为这是我知道的唯一方法。我希望在PHP循环中使用结果,如下所示:

回声“ 而$Row=$Result->fetch_arrayMYSQLI_ASSOC{ //HTML表格行中有$Row['stuff']在这里。 } 回声“ 但数据打印出表格的方式是错误的,如下所示:

|周|总|退款|关闭|拒绝| | 1 | 44 | 32 | 12 | 3 | | 2 | 40 | 21 | 19 | 6 | | 3 | 40 | 22 | 18 | 3 | | 4 | 41 | 32 | 11 | 6 |
我不介意在不使用pivot的情况下更改查询以获得所有相同的结果,这样我就可以像往常一样循环它们,或者使用PHP数组做一些事情,这样我就可以循环查询结果,无论哪种方法更简单/更好。怎么做?

好的,我又看了一遍,我想我只是让它变得比需要的更难

进行以下假设: 1数据库通常比PHP更擅长排序/组织数据,因此更改查询可能比事后更改数组要好。 2如果我希望结果有5列,我可能需要在语句中有5个select

然后我查看了分组,意识到它已经将结果按周分割了,所以我将按总和进行裁剪,然后分组将允许结果已经分割为周,没有必要在选择的部分中每周手动求和

选择 周 当年份为“2019”时,则为1,否则为0,总计结束, SUMCASE当类型为“退款”时,则1或0结束为退款, SUMCASE当类型为“closure”时,则1或0结束为closure, SUMCASE当历史记录(如“%rejected%”)为1时,其他0将作为rejections结束 从…起 我的桌子 哪里 年份=“$SafeFY”和期间=“$SafePeriod” 分组 周