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

    Reset grafico in jpgraph?!

    ciao,

    ho una pagina php in cui visualizzo una serie di grafici costruiti con jpgraph prelevando i dati da un database, cliccando su delle frecce cambia l'orario a cui sono riferiti i grafici, cambiano i dati prelevati dal database..ma il grafico non cambia..perchè? è necessario resettare i grafici? e se si con quale istruzione si fa in jpgraph??
    Provo ad allegare una immagine della schermata per dare una idea della pagina. purtroppo è più grande del limite ammesso, come posso ovviare a questo limite?
    grazie per l'aiutoo.
    ciao.
    PeppePegasus

  2. #2

    Problema più generale

    Ciao,

    visto che non c'è stata risposta, propongo il suo problema nel suo intero..anche perchè mi pare che il problema evidenziato non è l'aggiornamento del grafico o il reset.
    Descrivo brevemente il sito su cui sto lavorando.
    Ci sono diverse pagine, quella su cui sto intervenendo è questa: attraverso un menù a tendina si possono scegliere di visualizzare diverse misure, il giorno, mese, anno di cui si vuole visualizzare la misura. Il codice relativo a questa parte è questo:


    Pagina sod.php
    Codice PHP:
    if ($_REQUEST[tipo_dati]=="profiles") {
            
    $data_misura=$_REQUEST[anno]."-".$_REQUEST[mese]."-".$_REQUEST[giorno];
            
    $stringa_ricerca_ora="";

            if (isset(
    $_REQUEST[ora])) $stringa_ricerca_ora " AND ora = '".$_REQUEST[ora]."' ";

            
    $query_mostra="SELECT * FROM dati_sodarwf WHERE data='$data_misura$stringa_ricerca_ora order by ora;";
                            
    $result_mostra=mysql_query($query_mostra) or die ("impossibile eseguire: $query_mostra");
                            
    $row_mostra=mysql_fetch_array($result_mostra);
                            
    $ora=$row_mostra[ora];
                            
    $_REQUEST[ora]=$row_mostra[ora];

    ?> 
    Fatta la selezione delle misure che voglio, i dati (che sono sono raccolti in un database) li devo riportare in dei grafici, a tale scopo uso jpgraph.
    Il codice che prende i dati dal db e costruisce questi grafici è questo:

    Pagina immagini.php
    Codice PHP:
    <?php
    include_once("../include/config.php");
    include ( 
    "../jpgraph/src/jpgraph.php");
    include (
    "../jpgraph/src/jpgraph_line.php");

            
    $contatore=0;
            
    $conta_null=0;

    // Dati dal Form

            
    $year=$_REQUEST[anno];
            
    $month=$_REQUEST[mese];
            
    $day=$_REQUEST[giorno];
            
    $orario=$_REQUEST[ora];
            
    $variabile=$_REQUEST[variabile];

            
    $contatore_ora_precedente=0;
            
    $ora_precedente="";
            
    $vettore_variabile="";
            
    $vettore_alt="";

    // Query per ricavare l'altitudine e la variabile

            
    $query_mostra="SELECT altitude,$variabile FROM dati_sodarwf WHERE data='$year-$month-$day' AND ora='$orario';";
            
    $result_mostra=mysql_query($query_mostra) or die ("impossibile eseguire: $query_mostra");
            while(
    $row_mostra=mysql_fetch_array($result_mostra)){

    $vettore_variabile[$contatore]="";
    $vettore_alt[$contatore]="";

                    
    $vettore_variabile[$contatore]=$row_mostra[$variabile];
                    if(
    $row_mostra[$variabile]="") {
                                    
    $vettore_variabile[$contatore]="";
                                    
    $conta_null++;
                    }
                    
    $vettore_alt[$contatore]=$row_mostra[altitude];
                    
    $vettore_label[$contatore]=$row_mostra[$variabile];
                    
    $contatore++;
            }

            
    $query_parametri="SELECT * FROM tabelle_campi WHERE nome_campo='$variabile' AND id_tabella = '4' ;";
            
    $result_parametri=mysql_query($query_parametri) or die ("impossibile eseguire: $query_parametri");
            
    $row_parametri=mysql_fetch_array($result_parametri);

    // Richiamo le function per i 5 grafici

    switch($variabile)
    {
            case 
    "speed"$graf1 grafico_speed$vettore_alt$vettore_variabile$row_parametri$vettore_label$orario ); //speed,alt
            
    break;
            case 
    "direction"$graf2 grafico_dir$vettore_alt$vettore_variabile$row_parametri$vettore_label ); //dir,alt
            
    break;
            case 
    "vertical_velocity"$graf3 grafico_vert_vel$vettore_alt$vettore_variabile$row_parametri$vettore_label ); //vert_vel,alt
            
    break;
            case 
    "vertical_intensity"$graf4 grafico_int$vettore_alt$vettore_variabile$row_parametri$vettore_label ); //intensity,alt
            
    break;
            case 
    "vertical_sn"$graf5 grafico_vert_sn$vettore_alt$vettore_variabile$row_parametri$vettore_label ); //vert_sn,alt
            
    break;
    }

    // FUNCTION Per Generare i 5 Grafici
    // ***********************************
    // Function per richiamare il Primo grafico: (speed,alt)

    function grafico_speed$vettore_alt$vettore_variabile$row_parametri$vettore_label$orario ) {

    // Genero il grafico X,Y

    $titolo=$row_parametri[descrizione_IT].$orario;
    if (
    $Lingua == "EN"$titolo=$row_parametri[descrizione_EN];

    $label_asse_y$titolo." (".$row_parametri[unita_misura]." )";

    $label_asse_ytogliaccenti($label_asse_y);
    $titolotogliaccenti($titolo);

    // Create the graph. These two calls are always required
    $graph  = new Graph(200400,"auto");

    $graph->title->Set ($titolo);
    $graph->SetScale('intlin'); // A PUNTI

    // setta i margini
    $graph->SetMargin(60,40,40,40);

    // Create the linear plot
    // LINEARE $lineplot ->SetColor("blue");

    $graph->xaxis-> SetTickLabels($vettore_label);
    $graph->xaxis-> title->Set("$label_asse_y);
    // distanzia la label verticale dall'asse
    $graph->yaxis-> SetTitlemargin(40);
    $graph->yaxis-> title->Set("Altitude (m)");

    $sp1=new LinePlot($vettore_alt'$vettore_variabile');

    $sp1->mark->SetType(MARK_FILLEDCIRCLE);
    $sp1->mark->SetFillColor("black");
    $sp1->mark->SetWidth(2);

    $graph->Add($sp1); // linea con cerchietti

    // Display the graph
    $graph->Stroke();
    return;
    //fine function primo grafico
    realizzo 5 function (qui ne ho postata solo una) con la quale realizzo i 5 grafici (ogni grafico ha una sua peculiairtà di colori, di linee etc e ho preferito fare 5 function distinte).

    I grafici vengono richiamati dalla pagina sod.php come immagini, ho infatti 5 righe così:

    codice:
    [img]blocchi_ricerca/immagini_sodar.php?anno=<?=$_REQUEST[anno]?>&mese=<?=$_REQUEST[mese]?>&giorno=<?=$_REQUEST[giorno]?>&ora=<?=$_REQUEST[ora]?>&variabile=speed[/img]
    [img]blocchi_ricerca/immagini_sodar.php?anno=<?=$_REQUEST[anno]?>&mese=<?=$_REQUEST[mese]?>&giorno=<?=$_REQUEST[giorno]?>&ora=<?=$_REQUEST[ora]?>&variabile=direction[/img]
    [img]blocchi_ricerca/immagini_sodar.php?anno=<?=$_REQUEST[anno]?>&mese=<?=$_REQUEST[mese]?>&giorno=<?=$_REQUEST[giorno]?>&ora=<?=$_REQUEST[ora]?>&variabile=vertical_velocity[/img]
    [img]blocchi_ricerca/immagini_sodar.php?anno=<?=$_REQUEST[anno]?>&mese=<?=$_REQUEST[mese]?>&giorno=<?=$_REQUEST[giorno]?>&ora=<?=$_REQUEST[ora]?>&variabile=vertical_intensity[/img]
    [img]blocchi_ricerca/immagini_sodar.php?anno=<?=$_REQUEST[anno]?>&mese=<?=$_REQUEST[mese]?>&giorno=<?=$_REQUEST[giorno]?>&ora=<?=$_REQUEST[ora]?>&variabile=vertical_sn[/img]
    In base ai dati del form compilato dall'utente, si va nel db, si prendono i dati e si fanno i grafici. Un appunto sui dati: nel db ci sono i vari dati, essenzialmente l'altitudine, la velocità, la direzione etc. Questi sono poi organizzati per data e ora. Ogni 10 minuti ho dei dati da rappresentare. Quindi quando l'utente sceglie il giorno viene visualizzato il grafico della prima serie di dati, in base al primo orario per cui ci sono dati nel db.
    é necessario, allora, visualizzare nei grafici tutte le serie di dati negli orari e nei giorni selezionati e presenti nel db. questo avviene in base a un sistema di frecce che permettono di avanzare e tornare indietro con l'orario. Questo sistema a me va bene, il problema è questo:
    se avanzo con l'ora (11-11.10-11.20...) con il sistema di frecce, i grafici non mi cambiano!!!! Ho fatto vari controlli: l'ora passata dalla pagina sod.php alla pagina immagini.php va bene; i dati prelevati dal db sono esatti..non so più quale cosa controllare che mi genera questo problema. Anche perchè i grafici vanno un pò per conto loro nonostante i dati prelevati siano quelli esatti. Ma di questo forse è meglio riparlarne dopo aver risolto questo problema che non si aggiornano i dati nei grafici.
    C'è qualcuno di buona volontà che può darmi una mano a risolvere il problema????
    grazie 1000.
    ciao.
    PeppePegasus

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