[PHP] Creare chart con highchart

Micio.

Nuovo Utente
27 Set 2016
6
0
1
Salve, sono nuovo in questo forum e anche col PHP, vorrei creare un grafico con Highchart collegato al mio db. Sto utilizzando questo grafico ma trovo difficoltà a creare una query che faccia quello che voglio. La tabella nel DB contiene due valori principali, un 'date' e un 'amount'. 'date' è il current_timestamp e 'amount' è il valore assegnato. Vorrei effettuare una somma dei valori per ogni giorni per i 30 giorni precedenti. Considerando che 'amount' è il valore di acquisto di un prodotto e 'date' la data di acquisto, vorrei creare un grafico che rappresenti ogni giorno la somma dei pagamenti per i 30 giorni precedenti.

Questa è la tabella:
18a0ec793c.png


Per ora sono riuscito solo a estrapolare il valore di oggi:
$tot_p = $db->fetchOne("SELECT SUM(amount) FROM deposit_history WHERE date > UNIX_TIMESTAMP(CURDATE())")

ma non so come fare un ciclo per i 30 giorni precedenti.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, per una ricerca tra un range di date si usa BETWEEN, con INTERVAL invece puoi calcorare i 30 giorni e usi GROUP BY per raggruppare anno mese e giorno
Codice:
SELECT SUM(amount)
FROM deposit_history
WHERE time BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
GROUP BY YEAR(time),MONTH(time),DAY(time)
 
  • Like
Reactions: Micio.

Micio.

Nuovo Utente
27 Set 2016
6
0
1
Ciao, per una ricerca tra un range di date si usa BETWEEN, con INTERVAL invece puoi calcorare i 30 giorni e usi GROUP BY per raggruppare anno mese e giorno
Codice:
SELECT SUM(amount)
FROM deposit_history
WHERE time BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
GROUP BY YEAR(time),MONTH(time),DAY(time)

Grazie per la risposta, poi vorrei inserirli in una stringa che concateni tutti i risultati con un virgola (19.98, 30.29 ecc.) una roba del genere:
while($row=$db->fetch_array($query)){
$lista_somme .= $row['$Risultato_variabile_somma'].", ";}

Come posso fare?
 

Micio.

Nuovo Utente
27 Set 2016
6
0
1
Ho messo nella query
SELECT SUM(amount)
FROM deposit_history
WHERE time BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
GROUP BY YEAR(time),MONTH(time),DAY(time)
l'aggiunta di as daily_income
SELECT SUM(amount)
AS daily_income
FROM deposit_history
WHERE time BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
GROUP BY YEAR(time),MONTH(time),DAY(time)

e poi ho provato a stampare
while($row=$db->fetch_array($query)){
$daily_income .= $row['daily_income'].",";
}
echo $daily_income[0];
e dovrebbe stampare il risultato della somma di oggi ma non esce niente :(
 

Micio.

Nuovo Utente
27 Set 2016
6
0
1
No niente sono un coglione, ho messo l'indice del vettore nella variabile $daily_income lol


Ecco l'istruzione giusta
while($row=$db->fetch_array($query)){
$daily_income .= $row['daily_income'].",";
}
echo $daily_income;
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ottimo, è meglio però dichiarare le varibili prima di concatenarle : php genera un warning senza bloccarti il programma altri linguaggi invece ti danno un errore e bloccano l'esecuzione. Ti basta aggiungere $daily_income = ""; proma del ciclo.
 

marino51

Utente Attivo
28 Feb 2013
3.035
192
63
Lombardia
mi permetto di intervenire con il seguente suggerimento per l'uso di Highcharts,

primo step in php

in questa array raccolgo tutte le categorie (termine usato da highcharts) che vanno sull'ascissa
PHP:
  while( $data = $sth->fetch() ) {
    $SPW_xAxisCat[] = (string)$data['time'];
l'ora la passo come stringa

nelle array che seguono riporto i valori che andranno sul o sugli assi Y
PHP:
    $SPW_y0data[]   = (float)$data['GRpower'];
    $SPW_y1data[]   = (float)round($TOTenergy, 1, PHP_ROUND_HALF_UP);
    $SPW_y2data[]   = (float)round($AVEenergy, 1, PHP_ROUND_HALF_UP);

il secondo step consiste nel rendere disponibili questi valori a javascript (vedi come sono costruiti gli esempi del sito highcharts)
in particolare ho creato un js "standard" che all'inizio trova i dati generati da php
PHP:
$(document).ready(function() {

  var    SPW_color    = Highcharts.getOptions().colors;

  var    SPW_Chart    = '<?php echo ( empty($SPW_Chart)    ? ''        : $SPW_Chart );        ?>',
    SPW_ChartInv    = '<?php echo ( empty($SPW_ChartInv)    ? false        : $SPW_ChartInv );    ?>',
    SPW_Title    = '<?php echo ( empty($SPW_Title)    ? 'Title'    : $SPW_Title );        ?>',
    SPW_SubTitle    = '<?php echo ( empty($SPW_SubTitle)    ? 'SubTitle'    : $SPW_SubTitle );    ?>',
    SPW_LabelsOnCol    = '<?php echo ( empty($SPW_LabelsOnCol)    ? false        : $SPW_LabelsOnCol );    ?>',
    SPW_Stacking    = '<?php echo ( empty($SPW_Stacking)    ? false        : $SPW_Stacking );    ?>';

  var    SPW_xAxis    = <?php echo json_encode($SPW_xAxis); ?>;
  var    SPW_yAxis    = <?php echo json_encode($SPW_yAxis); ?>;
  var    SPW_ySeries    = <?php echo json_encode($SPW_ySeries); ?>;
  .....
  .....

nel terzo step, i dati vengono "associati" alla struttura highcharts
PHP:
    chart:
        {
        type: SPW_Chart,
        zoomType: 'xy',
        inverted: SPW_ChartInv,
        spacingBottom: 20
        },

    title:
        {
        text: SPW_Title
        },

visualizzando il grafico
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Libreria PHP per creare file dwg o dxf PHP 0
J creare pagina php di prenotazione PHP 5
F [PHP] creare tabella e tasto cerca PHP 3
B [PHP] Creare PDF dopo inserimento dati form PHP 4
R [PHP] Creare sistema random PHP 3
D [PHP] Consigli su come creare form PHP 1
T [PHP] Creare Honeypot per form contatti PHP 10
S [PHP] Creare collegamento filtri di ricerca al database PHP 6
Z Creare VirtualHost Apache2 con PHP? Programmazione 0
T con oop creare un ciclo per una pagina dinamica html con php PHP 3
E [PHP] creare temporary table per dati da xml PHP 2
R [PHP] creare pagina profilo per ogni utente PHP 4
M [PHP] Creare un menu a tendina con pdo PHP 18
G [PHP] Creare mail con allegato nascosto e bottone di richiamo PHP 0
C [PHP] Creare un Pulsante che ricopia valori di un campo in altro record PHP 4
Shyson [WordPress] [PHP] Creare codice che evidenzia nuovi articoli WordPress 0
ANDREA20 creare sito in php PHP 6
G [PHP] Creare appuntamento ed inviarlo tramite mail (Outlook e Gmail) PHP 0
F [PHP] Creare un'area web riservata PHP 13
S [PHP] [HTML] Come creare un grafico dinamico PHP 4
V Creare tabella mysql con php non funziona PHP 1
M Creare tabella da pagina php popolata con valori passati con POST PHP 5
B [PHP] hp script creare un utente diminuendo -1 e cosi via PHP 1
AntoCastro [PHP] Creare un sito di quiz a catena PHP 17
V Creare funzioni PHP per agevolare bootstrap PHP 1
B funzioni per creare file e inserirli dentro una certa cartella in php? PHP 1
F Creare pagina PHP come quella di phpMyadmin PHP 12
M Creare tabella da pulsante php PHP 6
M Creare un exe da un listato php PHP 5
P [PHP] Creare un elenco completo con tabella PHP 3
Zea [PHP] RISOLTO - creare link con il risultato dell'interrogazione db PHP 1
utente è possibile creare una pagina php che copia interamente il contenuto di un'altra pagina ? PHP 10
A [PHP] Creare numero ticket casuale PHP 5
giannit [PHP] Creare pagina con collegamenti ipertestuali da file txt PHP 6
B [PHP] Creare un'interfaccia di inserimento testo in varie posizioni PHP 1
sandropochi [PHP] Form per creare filtro di ricerca su DB PHP 8
L [PHP] Creare un uploader di file csv xls e ricercare i risultati PHP 0
Zayciho [PHP] Creare sito web dinamico PHP 5
P [PHP] Creare elenco immagini PHP 2
L [php e xml] per creare una galleria fotografica con diversi file xml PHP 0
T [PHP]Creare cookie PHP 5
Monital [PHP] Creare un array da stringa con diversi spazi PHP 3
P [PHP] come creare una chat PHP 24
trattorino Creare codice php help PHP 26
R [PHP] [HTML] Creare script invio modulo contatti PHP 2
romeocharly Creare un script/codice in php per collegare un id mysql con un file PHP 0
S PHP: creare un link in una pagina PHP 7
D Cerco Collaboratore in gradio di creare siti in wordpress, joomla, e PHP Offerte e Richieste di Lavoro e/o Collaborazione 7
V creare un collegamento di pagina html in php PHP 10
L Creare alcune condizioni php PHP 22

Discussioni simili