Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53

    grafici lineari problema con array

    Sto facendo un sistema che mi visualizza gli andamenti grafici dell'azienda.

    con i grafici e barra e torta nessun problema mentre con i grafici line
    non riesco ad inserire i valori nell'array.

    io estraggo i dati da mysql

    $query = "SELECT nettofattura FROM fatture WHERE mesefattura='".$mese."'";
    $result = mysql_query($query);
    if (!$result) { die("Errore nella query $query: " . mysql_error()); }

    while ($row = mysql_fetch_assoc($result))
    {
    $nettofattura = htmlentities($row['nettofattura']);
    }
    Questi valori li devo inserire nella array che crea il grafico quindi
    avento questa struttura
    $data= array(
    array("FATTURE",$nettofattura),

    );
    Il grafico appare con un solo punto

    Come faccio ad assegnare tutti i valori delle fatture all'array??

  2. #2
    sara' difficile risponderti se non sappiamo ne' com'e' popolata quella tabella (per quello che ne so io, la tua query potrebbe ritornare un solo risultato) ne' come si aspetta i parametri l'array che genera il grafico (anche se mi pare di riconoscere php/swf charts)

    dacci piu' informazioni

    ciao
    danno

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53
    Mi piacerebbe in pratica vedere l'andamento grafico delle fatture.

    es fattura 1 = € 10 fattura 2= € 20 fattura 3 = €5

    vedere cosi una linea che sale per i primi 2 punti e poi chiaramente scende nel terzo punto.

    La cella nettofatture nella tabella fatture contiene tutti gli importi delle fatture

    io vorrei estrarre i dati di questo campo con la query i tutti i valori di solo questo campo inserirli
    nell'array .

    Come è strutturata ora mi restitutisce solo l'ultimo valore perchè non so associare tutti i valori.

    Ora alla variabile data riesco solo a passare il valore

    $nettofattura = htmlentities($row['nettofattura']);

    invece dovrei associare a $nettofattura tutti i valori.

    spero di essermi spiegato

    grazie

  4. #4
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    $data = //array dei valori
    while ($row = mysql_fetch_assoc($result))
    {
    $nettofattura = htmlentities($row['nettofattura']);
    $data[] = $nettofattura; //oppure sarebbe meglio usare array_push($data, $nettofattura)
    }

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53
    intendi inserire un ciclo while nell'array?

    la struttura per creare il grafico è composta attualmente cosi:

    query

    valorizzazione variabile data con un array

    settaggi per il grafico es.

    $graph = new PHPlot("800", "600");
    $graph->SetDataValues($data);
    $graph->SetPlotType($graph_type);
    $graph->SetDataType("text-data");
    $graph->SetFileFormat("jpg");
    $graph->SetOutputFile("mese.jpg");
    $graph->SetIsInline(true);
    $graph->SetLegendPixels("600", "20");
    $graph->SetVertTickIncrement("10");....ecc ecc

    Per vedere il grafico nel tipo line punti devo inserire più valori

    quindi la variabile $data deve assumere il valore dell'array
    devo inserire nell'array piu valori

    es.

    Se sostituisco
    $data= array(
    array("FATTURE",$nettofattura),
    );

    con

    $data= array(
    array("FATTURE",10,20,30),
    );

    Fuziona io devo fare in modo di mettere 10,20,30 prendendoli dal campo nettofattura

    grazi

  6. #6
    (scusate la leggerezza nella prima risposta)

    Codice PHP:
    while ($row mysql_fetch_assoc($result)) 

    $nettofattura htmlentities($row['nettofattura']); 

    la cosa che fai tu e' assolutamente inutile: tu non crei un array di elementi, ma continui a sovrascrivere la stessa variabile e alla fine del ciclo conterra' ovviamente l'ultimo valore

    quello che dice oronze e' corretto, ad ogni iterazione del ciclo while devi aggiungere un elemento al tuo array:

    Codice PHP:
    $data = array();
    $values = array('FATTURE');

    while (
    $row mysql_fetch_assoc($result)) {
      
    $nettofattura htmlentities($row['nettofattura']);
      
    $values[] = $nettofattura;

    (mi sono permesso di modificare la soluzione di oronze: a quanto pare l'array coi dati e' solo il primo elemento di un array piu' grande)

    fai un print_r($data) e vedi se la struttura dell'array e' quella che ti serve

    ciao
    danno

  7. #7
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    Originariamente inviato da dannowonder
    (mi sono permesso di modificare la soluzione di oronze: a quanto pare l'array coi dati e' solo il primo elemento di un array piu' grande)
    Ma come ti sei permesso! Se l'hai fatto ora, non farlo mai più
    hai fatto benissimo! io non avevo idea di come fosse strutturato l'array...il mio era uno spunto

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53
    Non funziona mi restitutisce solo la scritta Array()

  9. #9
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    perchè guardando il codice si dimenticato una modifica importante
    Codice PHP:
    $values = array('FATTURE');
    while (
    $row mysql_fetch_assoc($result)) {
      
    $nettofattura htmlentities($row['nettofattura']);
      
    $values[] = $nettofattura;
    }
    $data = array($values); 
    prova ora

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53
    ci siamo quasi.

    ho provato e cosi riesco ad inserire tutti i valori della query nell'array
    però la struttura per i grafici lineri necesessita per funzionare di avere
    come valore della variabile data un array che contiene altri array
    dove ogni valore del singolo array indica un punto per una linea nuova

    per creare una linea formata da due punti il primo punto è nel primo array
    il secondo nel secondo array e cosi via.

    Ogni valore dopo la virgola è parte della seconda terza quarta e cosi via linea.

    Mi spiego:

    $data = array(
    (233,123,567),
    (181,96,511),
    );

    cosi verranno tracciate 3 line dove

    la prima avra' come valori 233,181

    la seconda 123,96

    la terza 567,511

    Quindi ora con le modifiche fatte assegna tutti i valori della array nel primo array
    quindi è come se attribuissi 233,123 riprendendo l'esempio di sopra
    in pratica devo creare per ogni linea una variabile con il valore successivo

    io ho provato a fare come segue ossia creare un nuovo array values2 sempre con valore nettofattura ma in posizione 1 cosi però è solo per vedere se funziona il metodo e ineffetti
    funziona solo che i valori come faccio a prenderli dinamicamente???

    $query = "SELECT nettofattura FROM fatture WHERE mesefattura='".$mese."'";
    $result = mysql_query($query);
    if (!$result) {
    die("Errore nella query $query: " . mysql_error());
    }
    $values = array('valore1');
    $values2 = array('valore2');
    while ($row = mysql_fetch_assoc($result)) {
    $nettofattura = htmlentities($row['nettofattura']);
    $values[] = $nettofattura;
    $values2[1] = $nettofattura;
    }

    $data = array(
    ($values),
    ($values2),
    );

    Spero di essermi spiegato

    grazie

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.