0

我正在尝试根据他们进入的月份/年份从我们的帮助台软件创建我们所有票证的图表。我已经对数据库运行了查询,并且得到了我正在寻找的东西。

我发现 PHPGraphlib 可以根据输入的数组生成图表。但是,我不断收到错误,即图表太小或数据点太多。

错误: 在此处输入图像描述

我知道它正在正确生成数组,因为我可以通过以下方式查看内容:

print_r($data);

print_r($data) 的输出;

Array ( [March 2012] => 10 [April 2012] => 18 [May 2012] => 20 [June 2012] => 19 [July 2012] => 10 [August 2012] => 22 [September 2012] => 18 [October 2012] => 17 [November 2012] => 15 [December 2012] => 12 [January 2013] => 24 [February 2013] => 18 [March 2013] => 33 [April 2013] => 13 [May 2013] => 20 [June 2013] => 20 [July 2013] => 21 [August 2013] => 13 [September 2013] => 15 [October 2013] => 14 [November 2013] => 14 [December 2013] => 3 [January 2014] => 13 [February 2014] => 15 [March 2014] => 23 [April 2014] => 20 [May 2014] => 33 [June 2014] => 19 )

.

<?php
include("../phpgraphlib.php");
$graph = new PHPGraphLib(1000,1000);
include 'db.inc';

$sql="SELECT FROM_UNIXTIME(swtickets.dateline,'%M %Y') AS Month, Count(DISTINCT(ticketmaskid)) AS Count FROM swtickets GROUP BY FROM_UNIXTIME(swtickets.dateline,'%M %Y') ORDER BY FROM_UNIXTIME(swtickets.dateline,'%Y'), FROM_UNIXTIME(swtickets.dateline,'%m') ASC";
$result=mysql_query($sql);

$data = array();
$num=mysql_numrows($result);
$i=0;

while ($i < $num){
    $mon=mysql_result($result,$i,"Month");
    $co=mysql_result($result,$i,"Count");
    $data[$mon]=$co;
    $i++;
}

mysql_close();
$graph->addData($data);
$graph->setBarColor('255,255,204');
$graph->setTitle('Money Made at XYZ Corp');
$graph->setTextColor('gray');
$graph->createGraph();

?>

我还尝试将我的查询限制为仅包含 1 个数据点,但它仍然会产生相同的错误。

如果我手动创建数组,它不会生成错误并按预期生成图形。

<?php
include("../phpgraphlib.php");
$graph = new PHPGraphLib(5000,5000);

$data = array(    
    "March 2012" => "10",
    "April 2012" => "18",
    "May 2012" => "20",
    "June 2012" => "19",
    "July 2012" => "10",
    "August 2012" => "22",
    "September 2012" => "18",
    "October 2012" => "17",
    "November 2012" => "15",
    "December 2012" => "12",
    "January 2013" => "24",
    "February 2013" => "18",
    "March 2013" => "33",
    "April 2013" => "13",
    "May 2013" => "20",
    "June 2013" => "20",
    "July 2013" => "21",
    "August 2013" => "13",
    "September 2013" => "15",
    "October 2013" => "14",
    "November 2013" => "14",
    "December 2013" => "3",
    "January 2014" => "13",
    "February 2014" => "15",
    "March 2014" => "23",
    "April 2014" => "20",
    "May 2014" => "33",
    "June 2014" => "19",
);

$graph->addData($data);
$graph->setBarColor('255,255,204');
$graph->setTitle('Money Made at XYZ Corp');
$graph->setTextColor('gray');
$graph->createGraph();
?>

输出页面:我在标准的 PHP 页面和 HTML 页面上尝试过,但收到相同的结果。

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<img src="graphs/alltickets.php" />
</body>
</html>

有任何想法吗?您还会推荐任何其他免费的 PHP 图形库吗?

4

1 回答 1

0

感谢 Llama 先生和 VikingBlooded,我发现了我的问题。查看日志,我发现它无法引用我的 db.inc 文件。当我在将数组放在不同目录中的文件之前测试数组时。在 graphs/alltickets.php 中,它引用了它上面目录中的一个文件,没有 ../

所以我必须改变的是

include '../db.inc';

这么愚蠢的错误。谢谢大家。

于 2014-06-19T19:42:39.220 回答