Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何提取MySQL数据monthwise和daywise来填充表,以便使用PHP libchart绘制图形?_Php_Mysql_Graph - Fatal编程技术网

如何提取MySQL数据monthwise和daywise来填充表,以便使用PHP libchart绘制图形?

如何提取MySQL数据monthwise和daywise来填充表,以便使用PHP libchart绘制图形?,php,mysql,graph,Php,Mysql,Graph,我有一个表,表中有CALL\u ID、Timestamp、Date、First\u Name、Last\u Name、Status等行 我需要做的是根据数据绘制图表,根据数据的日期进行过滤。 也就是说,对于月到日期图,我需要显示符合status=approved的行数,以用于当月正常运行当前日期的每一天 并且,对于年初至今图,我需要显示与Status=approved匹配的行数,该行数对应于一年中每个月的uptil当前月份 我的想法是这样的- 本月至今: $temp = date("Y-m-")

我有一个表,表中有CALL\u ID、Timestamp、Date、First\u Name、Last\u Name、Status等行

我需要做的是根据数据绘制图表,根据数据的日期进行过滤。 也就是说,对于月到日期图,我需要显示符合status=approved的行数,以用于当月正常运行当前日期的每一天

并且,对于年初至今图,我需要显示与Status=approved匹配的行数,该行数对应于一年中每个月的uptil当前月份

我的想法是这样的-

本月至今:

$temp = date("Y-m-");
while($i<=date("d"))
{
$query = "SELECT call_id FROM main WHERE status='approved' AND date='".$temp.$i."'";
$result = mysql_query($query, $link) or die("",mysql_error());
$count[i]= mysql_num_rows($result);
}
$query="SELECT COUNT(call_id) as 'num_records', date FROM main WHERE status='approved' AND CONCAT(YEAR(date),MONTH(date)) = CONCAT(YEAR(NOW()),MONTH(NOW())) GROUP BY date
$temp=日期(“Y-m-”);

而($i您只需使用mysql并去掉许多php循环,就可以轻松地完成此任务。本月迄今为止,类似于以下内容:

$temp = date("Y-m-");
while($i<=date("d"))
{
$query = "SELECT call_id FROM main WHERE status='approved' AND date='".$temp.$i."'";
$result = mysql_query($query, $link) or die("",mysql_error());
$count[i]= mysql_num_rows($result);
}
$query="SELECT COUNT(call_id) as 'num_records', date FROM main WHERE status='approved' AND CONCAT(YEAR(date),MONTH(date)) = CONCAT(YEAR(NOW()),MONTH(NOW())) GROUP BY date

该查询将给出一行,显示该天的日期和总记录,以及每月至今的每一天记录。

使用mysql并去掉许多php循环,您就可以更轻松地完成此任务。类似于本月至今的情况:

$temp = date("Y-m-");
while($i<=date("d"))
{
$query = "SELECT call_id FROM main WHERE status='approved' AND date='".$temp.$i."'";
$result = mysql_query($query, $link) or die("",mysql_error());
$count[i]= mysql_num_rows($result);
}
$query="SELECT COUNT(call_id) as 'num_records', date FROM main WHERE status='approved' AND CONCAT(YEAR(date),MONTH(date)) = CONCAT(YEAR(NOW()),MONTH(NOW())) GROUP BY date

该查询将给出一行,显示当天的日期和截至目前为止的每个月的总记录。

PHP不是javascript。变量名称前有美元符号($)。变量名称前有美元符号。
(我
…请再次检查,谢谢,我会更正的,你能帮我找到更好的解决方案吗?PHP不是javascript。变量名称前有美元符号($)。变量名称前有美元符号。
而(我
…再检查一遍,谢谢,会更正的,你能帮我找到更好的解决方案吗?如果你不介意的话,你能解释一下执行的查询吗?如果你不介意的话,告诉我今年至今如何执行类似的查询。我只是一个初学者,想学习。谢谢:)当然我可以试着解释一下。
COUNT()
part将选择返回的符合WHERE条件的记录数。如果您注意到查询的最后一行
groupbydate
,这会告诉mysql将每一行分组在一起,只要它们的日期相同。因此,例如,如果您有5个条目的日期都为'2011-05-02',您将返回一行,其中的计数为5.然后使用
CONCAT()
函数将字符串添加到一起,就像PHP中的
那样。可能会有帮助。非常感谢,非常清楚的解释:)所以我也对日期和年份执行了类似的查询。这是否正确?:
选择COUNT(调用\u id)作为'num\u month\u records',其中CONCAT之间的日期(年(现在),1))和CONCAT(YEAR(NOW)、MONTH(NOW))按日期分组
因为您只需要相同的年份,所以不再需要
CONCAT
。您可以
选择COUNT(call_id)作为'num_MONTH_records',其中YEAR(date)=YEAR(NOW())按日期分组
注意:这有一个缺点……在没有任何记录的日子里,你不会得到任何结果。如果你不介意,请解释一下执行的查询?如果你不介意告诉我如何执行今年至今的类似查询。我只是一个初学者,希望学习。谢谢:)当然我可以试着解释一下。
COUNT()
part将选择返回的符合WHERE条件的记录数。如果您注意到查询的最后一行
groupbydate
,这会告诉mysql将每一行分组在一起,只要它们的日期相同。因此,例如,如果您有5个条目的日期都为'2011-05-02',您将返回一行,其中的计数为5.然后使用
CONCAT()
函数将字符串添加到一起,就像PHP中的
一样。可能会有帮助。非常感谢,非常清楚的解释:)所以我也对日期和年份执行了类似的查询。这是否正确?:
选择COUNT(call_id)作为'num_month_records',其中CONCAT(YEAR(NOW),1)和CONCAT(YEAR(NOW),month(NOW))之间的日期按日期分组
,因为您只需要相同的年份,所以不再需要
CONCAT
。您可以将COUNT(call_id)选择为'num_month_records',其中YEAR(date)=YEAR(NOW())按日期分组。
注意:这有一个缺点。。。在没有任何记录的日子里,你不会得到任何结果。