我正在使用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
});
});
有人有想法吗? 感谢帮助
答案 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
也订购的功能。