JPGraph Ось Ошибка при попытке отобразить данные, выбранные из Oracle База данных - PullRequest
0 голосов
/ 02 марта 2020

В настоящее время пытаемся создать простой JPGraph, который выбирает фрагмент данных из базы данных и отображает его в виде графика.

Мы столкнулись с ошибкой:

JPGraph Error 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 Ответ

0 голосов
/ 02 марта 2020

В вашем while l oop вы не добавляете значения из данных строки в массив $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
...