Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2013, 10:04
Avatar de Ludwingg
Ludwingg
 
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 22 años
Puntos: 5
pchart y Warning: Division by zero

Hola.
Estoy creando una grafica de barras con la librería pchart, y cuando trato de ejecutar el codigo obtengo el error:
Código:
Warning: Division by zero
Lo que hago es llenar un array con datos de un xml externo:
Código:
$i=0;
	$dataRow = Array();  
	$xml=simplexml_load_file("p.xml");
	foreach($xml->dato as $dato){
		$dataRow[$i]['studentName']= $dato->anio;;  
		$dataRow[$i]['studentMarks']= $dato->totventa;
		$i++;
	}
El array se llena correctamente, pero en el navegador, me lanza el error antes mensionado.... pero si en lugar de llenar el array $dataRow con datos externos, lo lleno en el mismisimo archivo php, el error desaparece y la grafica se muestra correctamente.

Asi funciona:
Código:
	$dataRow = Array();  
	$dataRow[0]['studentName']= "hola";  
	$dataRow[0]['studentMarks']= 52;  
	$dataRow[1]['studentName']= "hola";  
	$dataRow[1]['studentMarks']= 20;  
	$dataRow[2]['studentName']= "Joseph";  
	$dataRow[2]['studentMarks']= 35;  
	$dataRow[3]['studentName']= "Deepak";  
	$dataRow[3]['studentMarks']= 26;  
	$dataRow[4]['studentName']= "Martin";  
	$dataRow[4]['studentMarks']= 37;  
	$dataRow[5]['studentName']= "Vijay";  
	$dataRow[5]['studentMarks']= 19;
Pero necesito que cargue el xml, y no datos estaticos.... el codigo completo:
Código PHP:
    //-- incluyo las clases para las graficas
    
include("pchart/pData.class");
    include(
"pchart/pChart.class");
    
    
$i=0;
    
$dataRow = Array();  
    
$xml=simplexml_load_file("p.xml");
    foreach(
$xml->dato as $dato){
        
$dataRow[$i]['studentName']= $dato->anio;;  
        
$dataRow[$i]['studentMarks']= $dato->totventa;
        
$i++;
    }
        
    
// Dataset definition  
    
$DataSet = new pData;  
    for (
$i=0$i<count($dataRow); $i++) {  
        
$dispStudName $dataRow[$i]['studentName'];  
        
$dispStudMarks $dataRow[$i]['studentMarks'];  
        
$DataSet->AddPoint($dispStudName,"Names");  
        
$DataSet->AddPoint($dispStudMarks,"Marks");  
    }  
    
$DataSet->AddAllSeries();  
    
$DataSet->RemoveSerie("Names");  
    
$DataSet->SetAbsciseLabelSerie("Names");  
    
$DataSet->SetSerieName("Marks","Marks");  
    
$DataSet->SetYAxisName("Marks");        
     
// Initialise the graph  
     
$Test = new pChart(700,230);  
     
$Test->setFontProperties("fuentes/tahoma.ttf",8);  
     
$Test->setGraphArea(50,30,680,200);  
     
$Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);  
     
$Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);  
     
$Test->drawGraphArea(255,255,255,TRUE);  
     
$Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE);     
     
$Test->drawGrid(4,TRUE,230,230,230,50);  
      
      
     
// Draw the bar graph  
     
$Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE);  
      
     
// Finish the graph  
     
$Test->setFontProperties("fuentes/tahoma.ttf",8);  
     
$Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255);  
     
$Test->setFontProperties("fuentes/tahoma.ttf",10);  
     
$Test->drawTitle(50,22,"Example 12",50,50,50,585);  
     
$Test->Render("graficas/barra1.png"
Gracias!