javascript - 如何仅在一张表中存储多个结果 MySql 和 PHP

标签 javascript php html mysql sql

我正在尝试使用 MySQL 和 PHP 生成每小时报告。

我想显示 24 小时内 08:00:00 - 09:00:00 之间出现了多少个案例,并按日期划分。现在我正在得到结果,但我已经创建了多个结果查询,如下所示:

$result = mysqli_query($con,"SELECT COUNT(IST_In_Time), DATE(IST_In_Time) FROM spillreport WHERE TIME (IST_In_Time) BETWEEN '19:00:00' AND '20:00:00' GROUP BY DATE(IST_In_Time)");
$result1 = mysqli_query($con,"SELECT COUNT(IST_In_Time), DATE(IST_In_Time) FROM spillreport WHERE TIME (IST_In_Time) BETWEEN '08:00:00' AND '09:00:00' GROUP BY DATE(IST_In_Time)"); 

并存储不同的 while 循环:

while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['DATE(IST_In_Time)'] . "</td>";
echo "<td>" . $row['COUNT(IST_In_Time)'] . "</td>";
echo "<td></td>";
}

while($row = mysqli_fetch_array($result1)) {
echo "<tr>";
echo "<td>" . $row['DATE(IST_In_Time)'] . "</td>";
echo "<td></td>";
echo "<td>" . $row['COUNT(IST_In_Time)'] . "</td>";
}

我知道这种不好的做法,但我没有时间采取更好的方法。我想在一个表中显示,其中行将根据日期自动增加,列将预定义,例如 7:00am-8:00am、8:00am-9:00am 等。

编辑: 使用下面的答案我得到了以下结果:

查询:SELECT DATE(IST_In_Time) date,HOUR(IST_In_Time) hour,COUNT(*) count FROM spillreport WHERE DATE(IST_In_Time)>= '2014-07-22 00:00:00' AND DATE(IST_In_Time)<= '2014-07-26 00:00:00' GROUP BY HOUR(IST_In_Time), DATE(IST_In_Time) ORDER BY DATE(IST_In_Time)ASC

结果:

date    hour    count
2014-07-22  19  1
2014-07-22  14  1
2014-07-23  18  28
2014-07-23  15  1
2014-07-23  19  26
2014-07-23  17  1
2014-07-23  20  8
2014-07-24  11  34
2014-07-24  19  2
2014-07-24  8   1
2014-07-24  12  35
2014-07-24  13  23
2014-07-24  15  37
2014-07-24  14  52
2014-07-24  10  34
2014-07-24  16  59
2014-07-24  9   15
2014-07-24  17  46
2014-07-24  18  25
2014-07-25  8   1
2014-07-26  19  1
2014-07-26  8   2
<小时/>

但我只想对唯一的日期和时间进行分组,应像这样水平划分:

    Hours 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23    
2014-07-22 - - - - - - - - - - -  -   -  -  1  -  -  -  -  1  -  -  -  -
2014-07-23 - - - - - - - - - - -  -   -  -  -  1  - 1 28  26  8  -  -  -
2014-07-24
2014-07-25
2014-07-26

像这样!

编辑2:

select client_id,
  max(case when rownum = 1 then date end) Date1,
  max(case when rownum = 2 then date end) Date2,
  max(case when rownum = 3 then date end) Date3
from
(
  select client_id,
    date,
    @row:=if(@prev=client_id, @row,0) + 1 as rownum,
    @prev:=client_id 
  from yourtable, (SELECT @row:=0, @prev:=null) r
  order by client_id, date
) s
group by client_id
order by client_id, date

我得到了这个代码来创建数据透视表,任何人都可以指导我如何为我的数据创建这个表吗?

最佳答案

我认为您想要按小时计数,因此正如评论所述,您可以使用 HOUR。例如从我必须提供的表格中计算今天每小时的事件数:

 mysql> SELECT DATE(event_time) date,HOUR(event_time) hour,COUNT(*) count 
   FROM events WHERE event_time > curdate() GROUP BY DATE(event_time),HOUR(event_time);
 +------------------+------------------+----------+
 | date             | hour             | count    |
 +------------------+------------------+----------+
 | 2014-07-26       |                0 |       30 |
 | 2014-07-26       |                1 |       21 |
 | 2014-07-26       |                2 |       11 |
 | 2014-07-26       |                3 |       29 |
 | 2014-07-26       |                4 |       25 |
 | 2014-07-26       |                5 |       22 |
 | 2014-07-26       |                6 |       46 |
 | 2014-07-26       |                7 |       42 |
 | 2014-07-26       |                8 |       26 |
 | 2014-07-26       |                9 |       58 |
 | 2014-07-26       |               10 |       11 |
 +------------------+------------------+----------+
 11 rows in set (0.00 sec)

编辑:更新为按日期添加缺失的分组。

我建议按日期、小时分组并按日期、小时排序,以获得良好排序的结果集。这应该会生成 PHP 中任何后处理所需的数据。之后就是 PHP 格式化工作。

关于javascript - 如何仅在一张表中存储多个结果 MySql 和 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24969473/

相关文章:

php - 在php脚本中执行unoconv命令

javascript - jQuery + 测试元素值(扩展)

javascript - 如何使用 Javascript 和 HTML 从搜索栏中获取输入并同时处理搜索列表?

javascript - rxjs/scheduler/VirtualTimeScheduler.js 404 未找到

javascript - jQuery load() 以及如何知道动态添加的图像何时完成加载?

javascript - 共享时会显示动画的开放图 Gif

javascript - 模式 HTML/Javascript 中的无效转义

php - 如果当前日期和时间已过,如何更改文本颜色?

php - 验证电子邮件地址和 URL?从 JavaScript 转换为 PHP

html - 我的右侧边栏不能像左侧边栏一样正常工作?