我目前正在创建一个Flot JavaScript时间序列线图。该图表分析了与创建帐户的时间相比创建帐户的用户数量。
下面是用户表的屏幕截图

到目前为止,我已经能够检索用于该图形的用户表x中的created_date列。然后在单独的查询中使用COUNT()函数计算y轴。我的密码在下面找到。
PHP:
<?php
include "connection/connect2.php";
$datecreated = "SELECT created_date FROM users";
$rundatecreated = mysql_query($datecreated);
$foundnum = mysql_num_rows($rundatecreated);
while ($runrows = mysql_fetch_assoc($rundatecreated)) {
$dataset1[] = $runrows['created_date'];
}
if (is_array($dataset1)){
foreach($dataset1 as $x) {
$query = mysql_query("SELECT created_date, count(created_date) as date FROM users WHERE created_date='$x' ");
while ($runquery = mysql_fetch_assoc($query)){
$y[]= $runquery['created_date'] .",".$runquery['date']."<br>" ;
}
}
$graph=implode(" ", $y);
echo $graph;
} else {
echo "error";
}
?>然后,我将使用这两个查询检索到的数据存储到一个数组中,如下所示。

我不知道如何将当前使用我的PHP代码检索的日期数据转换为JavaScript时间戳格式。我是否可以使用PHP代码这样做呢?
发布于 2016-01-12 11:10:39
1)您只需要一个SQL查询就可以实现这一点,而不是每次一加一。为此,请在查询中进行分组。
2)要从dat值中获取时间戳,请使用getTimestamp()方法并乘以100将UNIX时间戳转换为JavaScript时间戳。
3) Flot需要数据序列的数据作为数组(数据点)。然后,可以将其编码为JSON,并在JavaScript中打印或由AJAX获取。
更新的代码(没有测试,但应该是一个很好的起点):
<?php
include "connection/connect2.php";
$query = mysql_query("SELECT created_date, count(*) as date FROM users GROUP BY created_date ");
$foundnum = mysql_num_rows(mysql_query($query));
while ($runquery = mysql_fetch_assoc($query)){
$graph[] = array((new DateTime($runquery['created_date']))->getTimestamp() * 1000 , $runquery['date']);
}
if ($foundnum > 0) {
echo json_encode($graph);
} else {
echo "error";
}
?>https://stackoverflow.com/questions/34741110
复制相似问题