【问题标题】:Need data from mysql to draw graph需要来自mysql的数据来绘制图形
【发布时间】:2015-02-11 13:55:19
【问题描述】:

我想绘制一个图表,其中的值将从 MySQL 数据库中获取。它不工作。但是如果我给出手动值,那么图表就会显示出来。以下是我的代码:

<?php
include "libchart/classes/libchart.php";

header("Content-type: image/png");

$chart = new LineChart();
$con=mysqli_connect("localhost","root","","bkash");

$result = mysqli_query($con,"SELECT time,trx_value FROM dialer_rate where mno='tnr'"); 
$serie1 = new XYDataSet();
 while($row = mysqli_fetch_array($result))
  {
$serie1->addPoint(new Point($row['time']->time, $row['trx_value']->trx_value));
  }

$dataSet = new XYSeriesDataSet();
$dataSet->addSerie("TNR", $serie1);
$dataSet->addSerie("ROBI", $serie2);
$dataSet->addSerie("LNK", $serie3);
$dataSet->addSerie("AIR", $serie4);
$chart->setDataSet($dataSet);

$chart->setTitle("bKash Success/Failure for All MNO");
$chart->getPlot()->setGraphCaptionRatio(0.62);

$chart->render();

?>

我没有及时获得任何价值 & 下一行的 trx_value...

 while($row = mysqli_fetch_array($result))
  {
$serie1->addPoint(new Point($row['time']->time, $row['trx_value']->trx_value));
  }

但如果我想使用 echo 下面的输出来打印值

while($row = mysqli_fetch_array($result))
  { echo $row['time'];
    echo $row['trx_value'];
  };

然后输出来了..

当我使用如下手动值时,还会显示图表。

$serie1->addPoint(new Point("06-01", 273));
$serie1->addPoint(new Point("06-02", 421));
$serie1->addPoint(new Point("06-03", 642));
$serie1->addPoint(new Point("06-04", 799));
$serie1->addPoint(new Point("06-05", 1009));
$serie1->addPoint(new Point("06-06", 1106));

【问题讨论】:

    标签: php mysql pie-chart


    【解决方案1】:

    您在$row['time']-&gt;time 周围有不应该存在的引号,看起来您正在尝试对列“双索引”(即同时使用['field']-&gt;field 获取值)。

    new Point("$row['time']->time", $row['trx_value']->trx_value)
    

    应该是

    new Point($row['time'], $row['trx_value'])
    

    注意 Stack Overflow 的语法高亮显示如何提示第一个问题。如果您的文本编辑器不支持语法高亮,则可能值得切换到支持语法高亮的版本。

    【讨论】:

    • @Basudev,您确定$row['time']$row['trx_value'] 包含您认为它们的功能吗? echo 他们出去,或者在$row 上使用var_dump()
    • 是的,我的数据在 'time' 和 'trx_value' 列中。
    • @Basudev,那么您可能不需要-&gt;time-&gt;trx_value。请查看我的更新答案。
    • @Basudev,好吧,你真的需要var_dump($row)。我们需要看看那个变量里面有什么。请编辑您的问题并添加该输出。
    • 如果我使用 echo 打印,则值显示 echo $row['time'];但下面不工作 $serie1->addPoint(new Point($row['time'], $row['trx_value']));
    猜你喜欢
    • 1970-01-01
    • 2018-01-26
    • 2016-02-05
    • 2023-04-09
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    相关资源
    最近更新 更多