来自数据库的每日结果图表

肯特

我想创建一个图表,显示一个月中每天的应用程序的“用户登录”。此外,我想根据他们的用户组(付费或免费用户)在图表中显示它们。

问题:我从数据库中获得了所有这些用户登录名。不幸的是,有几天没有人(可以)登录,然后整天没有登录(也有可能只有免费用户无法登录)。这将导致我的SQL查询的结果集缺少日期,这将导致我的Chart出现问题。

代替:

2015-06-11: 50
2015-06-12: 0
2015-06-13: 108

我会得到:

2015-06-11: 50
2015-06-13: 108

我的data.php执行SQL查询:

$sql = "SELECT count(distinct(member_id)) as logins, DATE(date_seen) FROM botuser_statistics WHERE subscriber=0 GROUP BY DATE(date_seen)";
$rows = $db->query($sql);

$logins = array();
$logins["type"]["dates"] = array();
$logins["type"]["logins"] = array();

foreach($rows as $row){
    $logins["free"]["dates"][] = $row['DATE(date_seen)'];
    $logins["free"]["logins"][] = $row['logins'];
}

$sql = "SELECT count(distinct(member_id)) as logins, DATE(date_seen) FROM botuser_statistics WHERE subscriber=1 GROUP BY DATE(date_seen)";
$rows = $db->query($sql);

foreach($rows as $row){
    $logins["paid"]["dates"][] = $row['DATE(date_seen)'];
    $logins["paid"]["logins"][] = $row['logins'];
}
echo json_encode($logins);

这是我的JavaScript绘制图表:

jQuery.getJSON("data.php", function (result) {
    datesfree = result["free"]["dates"];
    loginsfree = result["free"]["logins"];
    loginspaid = result["paid"]["logins"];

    // Get context with jQuery - using jQuery's .get() method.
    var ctx = $("#userlogins").get(0).getContext("2d");

    var data = {
        labels: datesfree,
        datasets: [
            {
                label: "Free Users",
                fillColor: "rgba(220,220,220,0.2)",
                strokeColor: "rgba(220,220,220,1)",
                pointColor: "rgba(220,220,220,1)",
                pointStrokeColor: "#fff",
                pointHighlightFill: "#fff",
                pointHighlightStroke: "rgba(220,220,220,1)",
                data: loginsfree
            },
            {
                label: "Paid Users",
                fillColor: "rgba(151,187,205,0.2)",
                strokeColor: "rgba(151,187,205,1)",
                pointColor: "rgba(151,187,205,1)",
                pointStrokeColor: "#fff",
                pointHighlightFill: "#fff",
                pointHighlightStroke: "rgba(151,187,205,1)",
                data: loginspaid
            }
        ]
    };
});

这是我的图表的样子: 在此处输入图片说明

请注意,6月12日的蓝点(付费用户)-6月12日应为零,6月13日应为20,但不是,因为SQL查询甚至没有返回该日期。我应该如何解决呢?

nivasan89

您需要查找日期列表,例如表格或包含要绘制的所有日期的日期。然后,加入该列以获取每个日期的登录计数(使用IFNULL(login_count,0)将零日期考虑为零)。这样,您将获得记录集以及计数为零的日期。

table_date_lookup(此表将具有日期查找)联接table_botuser_statistics

编辑-1:-

用列出的日期创建一个临时表(或视图)。表名-tbl_dates

~~~~~~~~~
日期
~~~~~~~~~
2015年5月13日
2015年5月14日
2015年5月15日
~~~~~~~~~

然后使用类似以下查询的查询-

SELECT A.dates,IFNULL(B.logins,0)来自tbl_dates作为
左联接
(SELECT count(distinct(member_id))作为登录名,DATE(date_seen)来自botuser_statistics,其中Subscriber = 0 GROUP BY DATE(date_seen))AS B
ON A.dates = B.date_seen

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

来自数据库的foreach排序结果

来自分类Dev

来自geoLite2 IP数据库的错误结果

来自分类Dev

来自数据库的perl foreach数组结果

来自分类Dev

来自geoLite2 IP数据库的错误结果

来自分类Dev

来自MySQL数据库的ListView中的结果

来自分类Dev

来自数据库的错误结果显示不正确

来自分类Dev

来自 N 个 SQL Server 数据库的联合结果

来自分类Dev

数据库中的图表

来自分类Dev

来自数据库的视频

来自分类Dev

来自数据库的多行

来自分类Dev

Google图表与数据库中的数据

来自分类Dev

每日导入和导出Azure SQL数据库

来自分类Dev

php / mysql数据库每日报告

来自分类Dev

PHP-MySQL-每日备份数据库

来自分类Dev

来自Postgresql数据库的元数据

来自分类Dev

如何清理来自数据库的数据

来自分类Dev

如何清理来自数据库的数据

来自分类Dev

显示来自数据库PDO的数据

来自分类Dev

如何用预定义的文本替换部分来自数据库的结果

来自分类Dev

Yii系统参数来自数据库。Yii :: app()-> getParams()没有给出结果

来自分类Dev

如何使用php / mysql / html / css在3列中显示来自数据库的结果

来自分类Dev

显示来自数据库,方法,任何CI帮助程序的查询结果?

来自分类Dev

Yii系统参数来自数据库。Yii :: app()-> getParams()没有给出结果

来自分类Dev

基本的SELECT查询-来自多个数据库的结果

来自分类Dev

来自SQL数据库的MVC多个结果无法正常工作

来自分类Dev

使用 .htaccess 和 mod_rewrite 为来自数据库的结果创建友好 URL

来自分类Dev

Apache Ignite sql 查询仅返回缓存内容,而不是来自数据库的完整结果

来自分类Dev

使用来自数据库的 JSON 结果绑定 Select DropDown 时出错

来自分类Dev

数据库中结果的数据列表

Related 相关文章

  1. 1

    来自数据库的foreach排序结果

  2. 2

    来自geoLite2 IP数据库的错误结果

  3. 3

    来自数据库的perl foreach数组结果

  4. 4

    来自geoLite2 IP数据库的错误结果

  5. 5

    来自MySQL数据库的ListView中的结果

  6. 6

    来自数据库的错误结果显示不正确

  7. 7

    来自 N 个 SQL Server 数据库的联合结果

  8. 8

    数据库中的图表

  9. 9

    来自数据库的视频

  10. 10

    来自数据库的多行

  11. 11

    Google图表与数据库中的数据

  12. 12

    每日导入和导出Azure SQL数据库

  13. 13

    php / mysql数据库每日报告

  14. 14

    PHP-MySQL-每日备份数据库

  15. 15

    来自Postgresql数据库的元数据

  16. 16

    如何清理来自数据库的数据

  17. 17

    如何清理来自数据库的数据

  18. 18

    显示来自数据库PDO的数据

  19. 19

    如何用预定义的文本替换部分来自数据库的结果

  20. 20

    Yii系统参数来自数据库。Yii :: app()-> getParams()没有给出结果

  21. 21

    如何使用php / mysql / html / css在3列中显示来自数据库的结果

  22. 22

    显示来自数据库,方法,任何CI帮助程序的查询结果?

  23. 23

    Yii系统参数来自数据库。Yii :: app()-> getParams()没有给出结果

  24. 24

    基本的SELECT查询-来自多个数据库的结果

  25. 25

    来自SQL数据库的MVC多个结果无法正常工作

  26. 26

    使用 .htaccess 和 mod_rewrite 为来自数据库的结果创建友好 URL

  27. 27

    Apache Ignite sql 查询仅返回缓存内容,而不是来自数据库的完整结果

  28. 28

    使用来自数据库的 JSON 结果绑定 Select DropDown 时出错

  29. 29

    数据库中结果的数据列表

热门标签

归档