• User Attivo

    phpGraphLib in modalità dinamica non funziona

    Ho realizzato un grafico statico con la libreria phpGraphLib e funziona:

    [php]
    <?php
    include("phpgraphlib.php");
    $graph=new PHPGraphLib(950,450);

    $data = array("Jan"=>1324, "Feb"=>1200, "Mar"=>100, "Apr"=>1925, "May"=>1444, "Jun"=>957, "Jul"=>364, "Aug"=>221, "Sep"=>1300, "Oct"=>848, "Nov"=>719, "Dec"=>114);
    $graph->setBackgroundColor("white"); //imposta il colore di sfondo
    $graph->setGrid(true); //con false nasconde la griglia di default è true
    $graph->setLine(false); //con true mostra una linea che unisce i valori delle ordinate, di default è impostato a false
    $graph->setLineColor("red"); //imposta il colore della linea appena descritta
    $graph->setDataPoints(false);//con true mostra dei pallini in corrispondenza dei valori
    $graph->setDataPointColor("red");//imposta il colore dei pallini appena descritti
    $graph->setBars(true);//con false nasconde le barre
    $graph->setGoalLine(1200);//mostra una linea orizzontale in corrispondenza del valore indicato
    $graph->setGoalLineColor("red");//imposta il colore di questa linea

    $graph->addData($data);
    $graph->setTitle("Titolo grafico");
    $graph->setTextColor("red");
    $graph->createGraph();
    ?>
    [/php]ma se provo a renderlo dinamico non funziona più, dove può essere il problema?

    [php]
    <?php
    include("phpgraphlib.php");
    $graph=new PHPGraphLib(950,450);

    $conn2=mysql_connect("...", "Sql******", "**");
    mysql_select_db('Sql
    _1');

    $query_grafico="SELECT *
    FROM c_art_articolo
    ORDER BY contatore DESC
    LIMIT 15";
    $result_grafico = mysql_query($query_grafico, $conn2) or die('errore: ' . mysql_error());

    while($row_grafico = mysql_fetch_array($result_grafico))
    {    
       $data[$row_grafico['id_art_articolo']=>$row_grafico['contatore']];
    }
    

    $graph->setBackgroundColor("white"); //imposta il colore di sfondo
    $graph->setGrid(true); //con false nasconde la griglia di default è true
    $graph->setLine(false); //con true mostra una linea che unisce i valori delle ordinate, di default è impostato a false
    $graph->setLineColor("red"); //imposta il colore della linea appena descritta
    $graph->setDataPoints(false);//con true mostra dei pallini in corrispondenza dei valori
    $graph->setDataPointColor("red");//imposta il colore dei pallini appena descritti
    $graph->setBars(true);//con false nasconde le barre
    $graph->setGoalLine(1200);//mostra una linea orizzontale in corrispondenza del valore indicato
    $graph->setGoalLineColor("red");//imposta il colore di questa linea

    $graph->addData($data);
    $graph->setTitle("Titolo grafico");
    $graph->setTextColor("red");
    $graph->createGraph();
    ?>
    [/php]


  • User

    Ciao 🙂

    A prima vista direi che c'è un errore di sintassi sull'array $data nell'assegnazione dinamica da te esposta:
    @prinzart said:

    [php]
    $data[$row_grafico['id_art_articolo']=>$row_grafico['contatore']];[/php]

    Ti consiglio di provare così:
    [PHP]$data[$row_grafico['id_art_articolo']] = $row_grafico['contatore'];[/PHP]

    Fammi sapere come va 😉


  • User Attivo

    Ho risolto scrivendo questa query:

    $data = array();

    $query_grafico="SELECT c_art_articolo.id_art_articolo, c_art_articolo.contatore
    FROM c_art_articolo
    ORDER BY c_art_articolo.contatore DESC
    LIMIT 20";
    $result_grafico = mysql_query($query_grafico, $conn2) or die('errore: ' . mysql_error());

    while($row_grafico = mysql_fetch_assoc($result_grafico))
    {    
    
    $id_art_articolo = $row_grafico['id_art_articolo'];
    $contatore = $row_grafico['contatore'];
        
      $data[$id_art_articolo] = $contatore;
    }