Estoy creando una grafica de barras con la librería pchart, y cuando trato de ejecutar el codigo obtengo el error:
Código:
Lo que hago es llenar un array con datos de un xml externo:Warning: Division by zero
Código:
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.$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++; }
Asi funciona:
Código:
Pero necesito que cargue el xml, y no datos estaticos.... el codigo completo:$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;
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")