Visualizzazione dei risultati da 1 a 7 su 7

Discussione: php mysql grafico

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    12

    php mysql grafico

    Buongiorno a tutti,
    avevo una domanda da fare:
    da una query del tipo
    SELECT count(*) as c, SUBSTR(timestamp,1,7) as time FROM TABLE WHERE timestamp >= '2009-06-01 00:00:00' AND timestamp <= '2009-11-20 23:59:59' GROUP BY time ORDER BY time

    ottengo dei risultati del tipo: Array ( [c] => 543 [time] => 2009-07 ) Array ( [c] => 50647 [time] => 2009-09 )

    Costruendo un grafico con questi dati non avrei il valore 0 del 2009-08 perchè non presente nel DB ma che da un punto di vista statistico è comunque significativo.

    Mi chiedevo come fosse possibile evitare questo problema o con una query (preferibile) o con del codice php.

    Ringrazio in anticipo
    Saluti

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Creati una tabella periodi in cui riporti tutti i mesi, con un campo id contatore e un campo periodo

    200901,200902 fino a 200912

    poi fai la query

    codice:
    select p.periodo,count(t.id) as quanti
    from periodi as p
    left join ( 
    select id,date_format(`timestamp`,"%Y%m") as mese from table
    where date(`timestamp`) between '2009-06-01' and '2009-11-20') as t
    on p.periodo = t.mese 
    group by p.periodo
    having p.periodo between 200906 and 200911
    order by p.periodo asc

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    12
    avevo pensato anche io a questa soluzione, ma presenta due problemi, che mi serve per tutti i giorni e che mi serve anche per il futuro quindi tutti i giorni a venire

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da kavia
    avevo pensato anche io a questa soluzione, ma presenta due problemi, che mi serve per tutti i giorni e che mi serve anche per il futuro quindi tutti i giorni a venire
    Cosa significa "mi serve per tutti i giorni"?
    Dalla funzione substr() che hai usato mi pare di capire che debba fare dei conteggi mensili. Nella tabellina che ti ho consigliato di creare puoi già inserire anche i periodi relativi ai prossimi anni.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    12
    Originariamente inviato da nicola75ss
    Cosa significa "mi serve per tutti i giorni"?
    Dalla funzione substr() che hai usato mi pare di capire che debba fare dei conteggi mensili. Nella tabellina che ti ho consigliato di creare puoi già inserire anche i periodi relativi ai prossimi anni.
    si giorni o mesi in realtà non cambia, sta di fatto che non posso inserire in un db date inifinite prima o poi questa tabella d'appoggio diventa "vecchia" di conseguenza non è il massimo della vita, se io distribuisco un prodotto a X clienti o su X server mi devo ricordare, che so tra 10 anni che ho esaurito le date a disposizione? devo trovare un modo che cammini sulle sue gambe.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ti fai in pochi secondi uno script che popola dinamicamente la tabellina da qui ai prossimi 50/100 anni e amen.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    12
    Originariamente inviato da nicola75ss
    Ti fai in pochi secondi uno script che popola dinamicamente la tabellina da qui ai prossimi 50/100 anni e amen.
    si so che questa è una possibilità, diciamo una toppa, ma preferirei una soluzione + indipendente, senza appoggio di altre tabelle

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.