PHP和MySQL与Morris图表

时间:2014-03-14 11:31:53

标签: php mysql charts

我正在使用morris图表,但不知道如何使用PHP和MySQL打印两种类型的结果

我有这个代码似乎很好地显示了图表中的访问次数,但希望包括一天内访问但不知道该怎么做的不同用户的数量。

$query = "
SELECT DATE(date) AS dt, COUNT(*) AS cnt FROM `acessos` GROUP BY DATE(date)
";
$result = mysql_query($query, $fb) or die(mysql_error());
$num_rows = mysql_num_rows($result);

$(function(){

Morris.Area({
    element: 'morris-area-chart',
    data: [
    <?php while($row = mysql_fetch_array($result)){ ?>
    {
        period: '<?php echo $row['dt']; ?>',
        acessos: '<?php echo $row['cnt']; ?>',
        user: '<?php echo $row['user']; ?>',
    },
    <?php } ?>],
    xkey: 'period',
    ykeys: ['acessos','user'],
    labels: ['acessos','user'],
    xLabels:['day'],
    pointSize: 2,
    hideHover: 'auto',
    resize: true
});

});

有人有想法吗? 感谢帮助

1 个答案:

答案 0 :(得分:2)

这是针对不同用户的数量。您应该更新代码以使用“mysql_”函数之外的其他内容。

您想要的功能是count(distinct)。假设您有一个UserId字段,查询将如下所示:

SELECT DATE(date) AS dt, COUNT(*) AS cnt, COUNT(DISTINCT UserId) as NumUsers
FROM `acessos`
GROUP BY DATE(date)
ORDER BY DATE(date);

请注意,我还添加了一个明确的order by。 MySQL已经弃用了group by也订购的功能。