Получить данные из базы данных - PullRequest
1 голос
/ 16 июля 2011

Я реализовал диаграммы Fusion в платформе Codeigniter со следующим представлением.Я создаю линейную диаграмму с предоставленными данными, но я хотел бы получить эти данные из той же таблицы структурированной базы данных.Есть ли способ сделать это?Буду очень признателен, если кто-нибудь сможет мне помочь.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');?>

Диаграмма классов расширяет CI_Controller {

function __construct()
   {
      session_start();
      parent::__construct();
      if ( !isset($_SESSION['username']) ) {
         redirect('admin');
      }
   }

public function index() {


    $this->load->helper(array('url','fusioncharts')) ;

    $graph_swfFile      = base_url().'public/flash/Line.swf' ;
    $graph_caption      = 'Results' ;
    $graph_numberPrefix = '€ ' ;
    $graph_title        = 'Results' ;
    $graph_width        = 600 ;
    $graph_height       = 250 ;

    // Store Name of Products
    $arrData[0][1] = "Novomatic";
    $arrData[1][1] = "Atronic";
    $arrData[2][1] = "Williams";
    $arrData[3][1] = "Roulettes";
    $arrData[4][1] = "IGT";
    $arrData[5][1] = "Interblock";

    //Store sales data
    $arrData[0][2] = 567500;
    $arrData[1][2] = 815300;
    $arrData[2][2] = 556800;
    $arrData[3][2] = 734500;
    $arrData[4][2] = 676800;
    $arrData[5][2] = 648500;

    $strXML = "<graph caption='".$graph_caption."' numberPrefix='".$graph_numberPrefix."' formatNumberScale='0' decimalPrecision='0'>";

    //Convert data to XML and append
foreach ($arrData as $arSubData) {
        $strXML .= "<set name='" . $arSubData[1] . "' value='" . $arSubData[2] . "' color='".getFCColor()."' />";
    }
//Close <chart> element
$strXML .= "</graph>";

    $data['graph']  = renderChart($graph_swfFile, $graph_title, $strXML, "div" , $graph_width, $graph_height);

    //$this->load->view('chart_view',$data) ;
    $this->template->load('includes/template', 'chart_view' ,$data);
}

}

1 Ответ

2 голосов
/ 16 июля 2011

Прежде всего, вам просто нужно построить XML из данных вашей таблицы, а не из массива в существующем коде.

Пример кода может быть получен из:

$strXML = "<chart caption='Factory Output report' subCaption='By Quantity' pieSliceDepth='30' showBorder='1' formatNumberScale='0' numberSuffix=' Units'>";
//Fetch all factory records
$strQuery = "select * from Factory_Master";
$result = mysql_query($strQuery) or die(mysql_error());
//Iterate through each factory
if ($result) {
      while($ors = mysql_fetch_array($result)) {
      //Now create a second query to get details for this factory
       $strQuery = "select sum(Quantity) as TotOutput from Factory_Output where FactoryId=" . $ors['FactoryId'];
       $result2 = mysql_query($strQuery) or die(mysql_error()); 
       $ors2 = mysql_fetch_array($result2); 
      //Generate <set label='..' value='..'/>
       $strXML .= "<set label='" . $ors['FactoryName'] . "' value='" . $ors2['TotOutput'] . "' />";
      //free the resultset
       mysql_free_result($result2);
       }
  }
  mysql_close($link);
  //Finally, close <chart> element
  $strXML .= "</chart>";
  //Create the chart - Pie 3D Chart with data from $strXML
  echo renderChart("../../FusionCharts/Pie3D.swf", "", $strXML, "FactorySum", 600, 300, false, true);

Здесь обсуждается та же проблема:

http://codeigniter.com/forums/viewthread/136095/#671946

Однако вы также можете использовать более удобный PHP-конструктор данных и генератор диаграмм, предоставляемый пакетом FusionCharts pakck.

Для получения подробной информации см. Документацию FusionCharts:

http://www.fusioncharts.com/docs/> Руководство для веб-разработчиков> PHP-класс FusionCharts

или

http://www.fusioncharts.com/docs/>Руководство для веб-разработчиков> Использование PHP Class

...