Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Grafico dinamico - capire gli array

    Ciao Raga,
    Stò cercando di creare un grafico dinamico multiserie utilizzando il pacchetto messo a disposizione da FusionCharts

    Il codice sotto riportato con gli array dichiarati (che serve per creare il file xml ) funziona senza problemi,
    non capisco invece come fare a farlo funzionare con i dati rilevati da una tabella
    m'incarto con gli array e la loro gestione !

    Qualcuno mi può spiegare come modificare questo codice con i valori rilevati da tabella ?

    tabella di esempio
    codice:
    Anno  | prodotto |  qt_venduta
    2009  |       A     |     1510
    2009  |       B     |     1320
    2009  |       C     |     1220
    2009  |       D     |     1220
    2010  |       A     |     1020
    2010  |       B     |     1300
    2010  |       C     |     1500
    2010  |       D     |     1400
    Codice PHP:
    $arrData[0][1] = "Product A";
    $arrData[1][1] = "Product B";
    $arrData[2][1] = "Product C";
    $arrData[3][1] = "Product D";

    //Store sales data for current year
    $arrData[0][2] = 567500;
    $arrData[1][2] = 815300;
    $arrData[2][2] = 556800;
    $arrData[3][2] = 734500;

    //Store sales data for previous year
    $arrData[0][3] = 547300;
    $arrData[1][3] = 584500;
    $arrData[2][3] = 754000;
    $arrData[3][3] = 456300;

    //Now, we need to convert this data into multi-series XML. 
    //We convert using string concatenation.
    // $strXML - Stores the entire XML
    // $strCategories - Stores XML for the <categories> and child <category> elements
    // $strDataCurr - Stores XML for current year's sales
    // $strDataPrev - Stores XML for previous year's sales

    //Initialize <graph> element
    $strXML "<graph caption='Sales by Product' numberPrefix='$' formatNumberScale='1' rotateValues='1' decimalPrecision='0' >";

    //Initialize <categories> element - necessary to generate a multi-series chart
    $strCategories "<categories>";

    //Initiate <dataset> elements
    $strDataCurr "<dataset seriesName='Current Year' color='AFD8F8'>";
    $strDataPrev "<dataset seriesName='Previous Year' color='F6BD0F'>";

    //Iterate through the data  
    foreach ($arrData as $arSubData) {
    //Append <category name='...' /> to strCategories
    $strCategories .= "<category name='" $arSubData[1] . "' />";
    //Add <set value='...' /> to both the datasets
    $strDataCurr .= "<set value='" $arSubData[2] . "' />";
    $strDataPrev .= "<set value='" $arSubData[3] . "' />";
    }

    //Close <categories> element
    $strCategories .= "</categories>";

    //Close <dataset> elements
    $strDataCurr .= "</dataset>";
    $strDataPrev .= "</dataset>";

    //Assemble the entire XML now
    $strXML .= $strCategories $strDataCurr $strDataPrev "</graph>";

    //Create the chart - MS Column 3D Chart with data contained in strXML
    echo renderChart("../../FusionCharts/FCF_MSColumn3D.swf"""$strXML"productSales"600300); 

    Grazie 1000






    .

  2. #2
    Intendi come fai a creare un array estrapolando tutti i dati da una tabella MySQL?
    Non è difficilissimo.

    Ammettiamo che hai una tabella MySQL ch si chiami dati_vendite e che sia suddivisa in tre colonne che si chiamano rispettivamente anno, prodotto e qt_venduta (tralascio la colonna ID che per adesso non ci serve).

    La query per estrapolare i dati da questa tabella sarà del tipo:
    Codice PHP:
    $sql "SELECT anno, prodotto, qt_venduta FROM dati_vendite";
    $query mysql_query($sql); 
    Ora la variabile $query conterrà un dato con l'esecuzione dell'interrogazione al DB.
    Esiste una funzione php che permette di trasformare il risultato in un array: .mysql_fetch_array().
    Una volta che i risultati ottenuti sono fetchati in un array, non ti resta che scorrerlo per estrarne i valori:

    Codice PHP:
    while ($fetch mysql_fetch_array($query)) {
    $anno $fetch['anno'];
    $prodotto $fetch['prodotto'];
    $qt_venduta $fetch['qt_venduta'];
    // ora usi le variabili come preferisci

    Per ogni ciclo dello WHILE (quindi per ogni rigo dell'array contenenete i tre paraetri) potrai utilizzare i valori estratti per il tuo script.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Grazie alcio74,
    Forse mi sono espresso male,
    il mio problema ovviamente non è estrapolazione dei dati tramite array, ma capire dove e come inserire i cicli e concatenare le variabili nello script postato.

    Devo capire come modificare questo foreach.

    Codice PHP:
    foreach ($arrData as $arSubData) {
    //Append <category name='...' /> to strCategories
    $strCategories .= "<category name='" $arSubData[1] . "' />";
    //Add <set value='...' /> to both the datasets
    $strDataCurr .= "<set value='" $arSubData[2] . "' />";
    $strDataPrev .= "<set value='" $arSubData[3] . "' />";

    Il fine di tutto è quello di creare un file XML come questo.
    Codice PHP:
    <graph xaxisname='Continent' yaxisname='Export' hovercapbg='DEDEBE' hovercapborder='889E6D' rotateNames='0' yAxisMaxValue='100' numdivlines='9' divLineColor='CCCCCC' divLineAlpha='80' decimalPrecision='0' showAlternateHGridColor='1' AlternateHGridAlpha='30' AlternateHGridColor='CCCCCC' caption='Global Export' subcaption='In Millions Tonnes per annum pr Hectare' >
       <
    categories font='Arial' fontSize='11' fontColor='000000'>
          <
    category name='N. America' hoverText='North America'/>
          <
    category name='Asia' />
          <
    category name='Europe' />
          <
    category name='Australia' />
          <
    category name='Africa' />
       </
    categories>
       <
    dataset seriesname='Rice' color='FDC12E'>
          <
    set value='30' />
          <
    set value='26' />
          <
    set value='29' />
          <
    set value='31' />
          <
    set value='34' />
       </
    dataset>
        <
    dataset seriesname='Wheat' color='56B9F9'>
          <
    set value='67' />
          <
    set value='98' />
          <
    set value='79' />
          <
    set value='73' />
          <
    set value='80' />
       </
    dataset>
        <
    dataset seriesname='Grain' color='C9198D' >
          <
    set value='27' />
          <
    set value='25' />
          <
    set value='28' />
          <
    set value='26' />
          <
    set value='10' />
       </
    dataset>
    </
    graph





    .

  4. #4
    Finalmente dopo innumerevoli testate sono riuscito
    Chi la dura la vince, sempre !!!

    Codice PHP:

    //----------------------------------- INIZIO CODICE AGGIUNTO
    $query="SELECT
    categoria AS CAT,
    COUNT( campo1 ) AS T,
    COUNT( campo2 ) AS P
    FROM tabella
    GROUP BY categoria"
    ;
    $select=mysql_query($query) or die("Query fallita".mysql_error());
        

    $arrData = array();
    while (
    $row mysql_fetch_assoc($select))
    {
    $arrData[] = $row;
    }
    //---------------------------------- FINE CODICE AGGIUNTO


        
    //Initialize <graph> element
    $strXML "<graph caption='Sales by Product' numberPrefix='$' formatNumberScale='1' rotateValues='1' decimalPrecision='0' >";

    //Initialize <categories> element - necessary to generate a multi-series chart
    $strCategories "<categories>";

    //Initiate <dataset> elements
    $strDataCurr "<dataset seriesName='Current Year' color='AFD8F8'>";
    $strDataPrev "<dataset seriesName='Previous Year' color='F6BD0F'>";

        
    //Iterate through the data  
    foreach ($arrData as $arSubData)
     {
        
    //Append <category name='...' /> to strCategories
        
    $strCategories .= "<category name='" $arSubData['CAT'] . "' />";
        
    //Add <set value='...' /> to both the datasets
        
    $strDataCurr .= "<set value='" $arSubData['T'] . "' />";
        
    $strDataPrev .= "<set value='" $arSubData['P'] . "' />";
    }
        
    //Close <categories> element
    $strCategories .= "</categories>";

    //Close <dataset> elements
    $strDataCurr .= "</dataset>";
    $strDataPrev .= "</dataset>";

    //Assemble the entire XML now
    $strXML .= $strCategories $strDataCurr $strDataPrev "</graph>";

    //Create the chart - MS Column 3D Chart with data contained in strXML
    echo renderChart("charts/swf/MSColumn3D.swf"""$strXML"productSales"600300);

    ?> 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.