尝试显示从 Oracle 数据库中选择的数据时出现 JPGraph 轴错误

Posted

技术标签:

【中文标题】尝试显示从 Oracle 数据库中选择的数据时出现 JPGraph 轴错误【英文标题】:JPGraph Axis Error when trying to display data selected from Oracle Database 【发布时间】:2020-06-14 06:49:15 【问题描述】:

目前正在尝试创建一个简单的 JPGraph,它从数据库中选择一条数据并将其显示在图表中。

我们遇到了一个错误:

JPGraph 错误 20544 - 无法使用自动缩放,因为它是不可能的 确定 Y 轴的有效最小值/最大值(仅限空值)。

我们真的很难理解这到底意味着什么。

这是我们的 php 代码:

<?php

$conn = oci_connect('connection_name', 'Groupassignment2020', 'db_link');

if (!$conn)    

$e = oci_error();   

trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);



require_once ('src/jpgraph.php');
require_once ('src/jpgraph_bar.php');

$selectBudget = oci_parse($conn, "SELECT BUDGET FROM REVENUE");
oci_execute($selectBudget);

$data1y=array();

while ($row = oci_fetch_array($selectBudget, OCI_ASSOC+OCI_RETURN_NULLS)) 
    $data1y = $row['BUDGET'];


$data1y=array($selectBudget,$selectBudget);


// Create the graph. These two calls are always required
$graph = new Graph(1400,800,'auto');
$graph->SetScale("textlin");

// Create the bar plots
$b1plot = new BarPlot($data1y);

$theme_class=new UniversalTheme;
$graph->SetTheme($theme_class);

$graph->yaxis->SetTickPositions(array(0,1000000,205000000), array(0,1000000,205000000));
$graph->SetBox(false);

// Create the grouped bar plot
$gbplot = new GroupBarPlot(array($b1plot));
// ...and add it to the graPH
$graph->Add($gbplot);

$b1plot->SetColor("white");
$b1plot->SetFillColor("#768692");

$graph->title->Set("Bar Plots");

// Display the graph
$graph->Stroke();
?>

所选数据的值为:205000000。

问题可能在于我们如何标记 y 轴刻度位置,但我们并不完全确定。

【问题讨论】:

【参考方案1】:

在您的 while 循环中,您不会将行数据中的值添加到您的 $data1y 数组中,因此最终结果是一个具有单个值的数组,从而导致您看到的错误。根据您的代码,您似乎想用数据库中的值填充 $data1y 数组,因此请使用下面的代码来执行此操作。

#$data1y=array();  // you don't need this

while ($row = oci_fetch_array($selectBudget, OCI_ASSOC+OCI_RETURN_NULLS)) 
    $data1y[] = $row['BUDGET'];

不清楚您试图用以下代码行做什么,但可能不需要。

#$data1y=array($selectBudget,$selectBudget);  // probably don't need this either

【讨论】:

只是试图在条形图中显示一个值。我们更改了代码,现在错误变为:“Parameter must be an array or an object that implement Countable.”

以上是关于尝试显示从 Oracle 数据库中选择的数据时出现 JPGraph 轴错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试从数据库中选择 WooCommerce 值时出现 mysqli_fetch_assoc 错误

查询 oracle 多维数据集时出现 java.sql.SqlRecoverableException

使用python将数据从csv文件插入oracle时出现错误ORA-01722:无效数字

尝试在 Shiny 应用程序中显示来自 SQL Server 查询的数据框时出现问题

尝试从 eloquent 的查询中插入值时出现问题

尝试在 Nuxt 中将数据从组件传递到页面时出现错误消息