Ver Mensaje Individual
  #10 (permalink)  
Antiguo 04/06/2007, 11:21
Cerropayne23
 
Fecha de Ingreso: mayo-2007
Mensajes: 8
Antigüedad: 17 años
Puntos: 0
Pregunta Re: Problemas con jpgraph??

Hey amigos:

Yo tengo un problema similar....
Yo recogo los datos que quiero graficar por medio de un formulario en HTML, este envía los datos por medio de la selección que hago desde un ListBox, esto no es problema, se envían los datos correctos para hacer la consulta.
El código en php que generará la gráfica es el siguiente:

<?php
if ($c=OCILogon("usuario", "contraseña", "baseOracle")) {
} else {
$err = OCIError();
}
// Select Data...
//$dato = $_POST['miDato_Name'];
if(isset($_POST['miDato'])){
$dato = $_POST['miDato'];
}
//$dato = $_POST['$miDato->TextColumn'];
//$dato = 77;
//for ($i=0;$i<count($dato);$i++)
//{
//$query = "select a.valor_indicador from sise_indicadores_sum a where //a.codigo_indicador='$dato[$i]' order by a.anio";
//}
$query = "select a.valor_indicador from sise_indicadores_sum a where a.codigo_indicador='$dato' order by a.anio";
//print "<pre>";
//var_dump($query);
//print "</pre>";

$s = OCIParse($c, $query);
//$s = OCIParse($c, "select a.valor_indicador from sise_indicadores_sum a where a.codigo_indicador='$dato' order by a.anio");
OCIExecute($s);
$data = array(); // creamos un arreglo en blanco, este será el de los datos

while ($row = oci_fetch_array($s, OCI_RETURN_NULLS)) {
$data[] = $row[0]; // agregamos el dato, suponiendo que este en la primera posición del arreglo resultante
}

//Seleccion de otros datos...
//for ($j=0;$j<count($dato);$j++)
//{
//$query2 = "select a.anio from sise_indicadores_sum a where a.codigo_indicador='$dato[$j]' order by a.anio";
//}
$query2 = "select a.anio from sise_indicadores_sum a where a.codigo_indicador='$dato' order by a.anio";
$s2 = OCIParse($c, $query2);
//$s2 = OCIParse($c, "select a.anio from sise_indicadores_sum a where a.codigo_indicador='$dato' order by a.anio");
OCIExecute($s2);
$data2 = array();
while ($row2 = oci_fetch_array($s2, OCI_RETURN_NULLS)) {
$data2[] = $row2[0];
}

//Seleccion de otros datos...
//for ($k=0;$k<count($dato);$k++)
//{
//$query3 = "select a.nombre_indicador from sise_indicadores a where a.codigo_indicador='$dato[$k]'";
//}
$query3 = "select a.nombre_indicador from sise_indicadores a where a.codigo_indicador='$dato'";
$s3 = OCIParse($c, $query3);
//$s3 = OCIParse($c, "select a.nombre_indicador from sise_indicadores a where a.codigo_indicador='$dato'");
OCIExecute($s3);
$data3 = array();
while ($row3 = oci_fetch_array($s3, OCI_RETURN_NULLS)) {
$nom[] = $row3[0];
}




//librerias para graficar
include_once ("C:/wamp/jpgraph-1.21b/src/jpgraph.php");
include_once ("C:/wamp/jpgraph-1.21b/src/jpgraph_pie.php");
include_once ("C:/wamp/jpgraph-1.21b/src/jpgraph_pie3d.php");

$datay = $data;
$datay2 = $data2;
$nombre = $nom;


// Create the Pie Graph.
$graph = new PieGraph(700,300);//,'auto');
$graph->SetShadow();

// Set A title for the plot
//$graph->title->Set("Código de Area y Nombre de Area");
$graph->title->Set($nombre[0]);
$graph->title->SetFont(FF_FONT1,FS_BOLD);

// Create
//print "<pre>";var_dump($datay);
//exit;
$p1 = new PiePlot3D($datay);
$p1->SetLegends($datay2);
$p1->SetTheme("pastel");

// Use absolute labels
$p1->SetLabelType(1);
$p1->value->SetFormat("valor: %d");

// Move the pie slightly to the left
$p1->SetCenter(0.4,0.5);


$graph->Add($p1);


// Send back the HTML page which will call this script again
// to retrieve the image.
$graph->StrokeCSIM('pruebaOracle_graf.php');

?>

Como verán el código en php está bueno, pero cuando en la página html le envío los datos por medio del formulario y cargo la página php que grafica, el JpGraph me envía un error:

Illegal pie plot. Sum of all dato is zero

verifico los datos usando print "<pre>";var_dump($datay);
exit; y los datos que deseo graficar si existen, entonces ¿por qué me da este error el JpGraph?
¿Cómo puedo solucionarlo?