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

    AIUTO CON LIBRERIA PHPGraphLib di questo sito

    Ho seguito la guida di questo sito e in effetti lo script funziona anche se con dati "fissi".
    Ma guardando sul sito ufficiale, scopro che supporta mysql, quindi cerco di capire come fare, leggendo la guida in inglese che trovate qui:
    http://www.ebrueggeman.com/phpgraphl...tutorial_2.php

    quello che non capisco nell'esempio è questo:

    quei valori da 0 a 330.000 nell'asse verticale, suppongo siano dovuti al count.. ma al count di cosa?!
    dei valori presenti in quel campo? dei valori totali dei record?
    lui nell'esempio da per scontato che io sappia com'è la sua tabella di prova, ma non lo so!!!

    cioè, mi spiego meglio...
    se io creo una tabella coi mesi, da gen a dic, e poi un'altra tabella con i vari importi associati al mese, una cosa tipo:
    tabella 1: campi id_mese e mese
    tabella 2: campi id_importo, id_mese e importo

    se faccio poi la query come da esempio suo:
    $sql="SELECT a.mese as mese, COUNT(b.importo) AS 'count' FROM mesi a, importi b GROUP BY a.id_mese";

    perchè non vedo nulla?
    e soprattutto, cosa dovrei vedere nell'asse verticale?
    perchè eseguendo direttamente la query mi da 12, ossia il totale delle righe inserite e non degli importi da 0 a n dove n è il massimo di b.importo!!!

    cosa sbaglio??? aiutatemi x favore...

  2. #2
    Credo tu debba ottenere un array del tipo:

    Codice PHP:
    $data = array
    (
     
    'Tipo1' => '1000',
     
    'Tipo2' => '687',
     
    'Tipo3' => '127'
    ); 
    quindi per il tuo esempio dovresti:
    Codice PHP:
    $result mysql_query("
      SELECT mese, SUM(importo) AS totale
      FROM mesi
      NATURAL JOIN importi
      GROUP BY mese
    "
    );

    $dati = array();
    while ( 
    $row mysql_fetch_assoc($result) ) {
      
    $mese $row['mese'];
      
    $totale $row['totale'];

      
    $dati[$mese] = $totale;
    }

    // ..continui creando il grafico e passandoli $dati... 
    Administrator of NAMDesign.Net

  3. #3
    grazie x la risposta, ma ancora + semplicemente ho risolto così:

    $sql="SELECT a.mese, b.ricavo_prev FROM mesi a, budget_generale b WHERE a.id_mese = b.id_mese ORDER BY a.mese DESC";
    $result = mysql_query($sql) or die('Query failed: ' . mysql_error());
    while($row = mysql_fetch_assoc($result))
    {
    $mese=$row["mese"];
    $count=$row["ricavo_prev"];
    //ADD TO ARRAY
    $dataArray[$mese]=$count;
    }


    grazie lo stesso

  4. #4
    anzi, aggiungo:
    l'include della connessione al db non vi fa vedere una fava.
    vanno fatte tante connessioni al db quanti sono gli array, altrimenti sto script non funziona.

    eccovi l'esempio:

    Codice PHP:
    <?php 
    include("phpgraphlib.php");
    $graph=new PHPGraphLib(450,300);
    $link mysql_connect('localhost''''')
         or die(
    'Could not connect: ' mysql_error());
         
    mysql_select_db('publigest') or die('Could not select database');

    $dataArray=array();
    $sql="SELECT a.mese, b.ricavo_prev FROM mesi a, budget_generale b WHERE a.id_mese = b.id_mese ORDER BY a.mese DESC";
    $result mysql_query($sql) or die('Query failed: ' mysql_error());
    while(
    $row mysql_fetch_assoc($result))
        {    
                
    $mese=$row["mese"];
                
    $count=$row["ricavo_prev"];
                            
    //ADD TO ARRAY
                
    $dataArray[$mese]=$count;
        }
        
    $link mysql_connect('localhost''''')
         or die(
    'Could not connect: ' mysql_error());
         
    mysql_select_db('publigest') or die('Could not select database');
    $dataArray2=array();
    $sql="SELECT a.mese, b.costo_prev FROM mesi a, budget_generale b WHERE a.id_mese = b.id_mese ORDER BY a.mese DESC";
    $result mysql_query($sql) or die('Query failed: ' mysql_error());
    while(
    $row mysql_fetch_assoc($result))
        {    
                
    $mese=$row["mese"];
                
    $count=$row["costo_prev"];
                            
    //ADD TO ARRAY
                
    $dataArray2[$mese]=$count;
        }

    $link mysql_connect('localhost''''')
         or die(
    'Could not connect: ' mysql_error());
         
    mysql_select_db('publigest') or die('Could not select database');
    $dataArray3=array();
    $sql="SELECT a.mese, b.costo_real FROM mesi a, budget_generale b WHERE a.id_mese = b.id_mese ORDER BY a.mese DESC";
    $result mysql_query($sql) or die('Query failed: ' mysql_error());
    while(
    $row mysql_fetch_assoc($result))
        {    
                
    $mese=$row["mese"];
                
    $count=$row["costo_real"];
                            
    //ADD TO ARRAY
                
    $dataArray3[$mese]=$count;
        }

    $graph->addData($dataArray,$dataArray2,$dataArray3);
    $graph->setBackgroundColor("black");
    $graph->setBarColor("255,255,204");
    $graph->setTitle("Budget riassuntivo");
    $graph->setTitleLocation("left");
    $graph->setLegend(true);
    $graph->setLegendTitle("Previsto""Pianificato""Reale");
    $graph->setTitleColor("yellow");
    $graph->setupYAxis(12"yellow");
    $graph->setupXAxis(20"yellow");
    $graph->setXValuesHorizontal(true);
    $graph->setGrid(false);
    //$graph->setGoalLine(60);
    //$graph->setGoalLineColor("yellow");
    $graph->setGradient("gray""white");
    $graph->setBarOutlineColor("white");
    $graph->setTextColor("white");
    $graph->createGraph();
    ?>
    non so perchè, ma se metto in include il mio file conn.php (che su altre cose nella pagina funziona benissimo), lo script non funziona.

    Spero che vi sia di aiuto....

    Fabri

  5. #5
    Non vorrei sembrare antipatico ma...stai vaneggiando

    Ti basta 1 sola connessione al DB.
    Poi a seconda delle tue esigenze ti può bastare 1, 2 o tutte le query che ti servono per utilizzare i dati.
    Administrator of NAMDesign.Net

  6. #6
    sarà sicuramente come dici tu, ma ti ripeto, il conn.php che utilizzo nelle altre pagine mi funziona e su quello script no... e sinceramente siccome devo consegnare sta cosa di corsa, preferisco non indagare oltre adesso, magari dopo lo vedrò per ora non posso!

  7. #7
    ti consiglierei di controllare perchè questa situazione anomala sarà data da un bug che magari quando meno te lo aspetti farà brutti scherzi al tuo cliente...e non ne avrai un bel ritorno di immagine.
    Administrator of NAMDesign.Net

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 © 2025 vBulletin Solutions, Inc. All rights reserved.