ESTRARRE VALORI MASSIMI E MINIMI IN UN INTERVALLO DI RECORD

giacomo9783

Utente Attivo
24 Ago 2016
86
0
6
38
sono nuovo qui, mi sto avvicinando a mysql per lo sviluppo di un sito meteorologico

www.meteolucignano.net

in una tabella (METEO) vengono registrati tutti i valori meteorologici (temperatura, umidità, etc...) affiancati ad un timestamp che riporta la data e l'ora della registrazione di ogni record.

Vorrei poter estrarre e stampare a video i valori massimi e minimi di un giorno selezionabile a piacere dal visitatore; in pratica dovrei estrarre il valore massimo e minimo di ogni colonna (temperatura, umidità, etc...) fra tutti i record che riportano la data inserita dall'utente; visto che ci siamo, sarebbe una gran cosa anche poter stampare a video il corrispondente orario, estraibile dal timestamp. A dirsi pare facile, ma a farsi.. sono nel pallone più totale. Ogni aiuto/suggerimento è ben accetto
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
se non ho capito male un utente inserisce una data (intanto in che formato? es gg.mm.aaaa?)
detto questo per prima cosa devi trassformare la data in timestamp usando mktime crendo l'intervallo del giorno
esempio schematico
PHP:
<?php
$data="25/08/2016";
$ore_zero= mktime ([ 0, 0,0,8, 25, 2016);
$ore_dodici=mktime ([ 59, 59,59,8, 25, 2016);
//così hai creato l'intervallo del giorno
//poi fai la querry (metto i nomi a caso
$q="SELECT min(temperatura) as t_min max(temperatura) as t_max FROM tabella WHERE data BETWEN $ore_zero AND $ore_dodici";
$ris=mysqli_query($connessione, $q);
$riga=mysqli_fetch_array(£ris);
echo "il giorno $data: temperatura minima ".$riga['t_min']." temperatura massima ".$riga['t_max']."<br>";
?>
prova così evidentemente adattandolo alle tue esigenze
 

giacomo9783

Utente Attivo
24 Ago 2016
86
0
6
38
vorrei creare un form (in php) in cui l'utente inserisce il giorno (gg/mm/aaaa) e cliccando su un bottone visualizza i valori massimi e minimi del giorno inserito. Il nodo cruciale, per me, è interrogare il database per poter ottenere i massimi e minimi della data inserita (e magari anche la rispettiva ora); ripeto, nalla tabella "meteo", ogni riga riporta la data e l'ora, e tutti i valori meteo (temperatura, umidità, etc...) esempio

TIME STAMP LOCAL TEMPERATURA UMIDITA' PRESSIONE
2016-08-25 13:16:30 27,1 24 1021
2016-08-25 13:21:30 27,3 23 1021
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
intanto da quello che vedo la data non è in timestamp (ricorda il timestamp è spresso in secondi)
poi ci do un occhio e spero di saperti dire
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
quindi devi fare un form in cui l'utente possa mettere la data, però devi stare attento perche le date sono sempre una rogna e prima di usarle vanno verificate.
nel form forse ti convine mettere 3 campi select in cui l'utente puo scegliere l'anno il mese ed il giorno, oppure mettere un datapiker (lo trovi anche su google)
ipotizzioamo che l'utente selezioni l'anno il mese e il giorno quindi dalla parte php avrai i tuoi $_POST
PHP:
<?php
//dati connessione
//...se fai nella stessa pagina qui ci sara l'if isset($_POST['submit']
$anno=$_POST['anno'];//in formato AAAAA es 2016
$giorno=$_POST['giorno']; //in formato gg es 27
$mese=$_POST['mese'];// in formato mm es 08
//prima fai la verifica
if(!checkdate ( (int)$mese , (int)$giorno , (int)$anno )){
    echo "la data inserita NON è corretta";
    //e rimandi dove vuoi es al form
}else{
    //da come scrivi tu hai le date nel formato 2016-08-25 13:16:30
    /*quindi l'intervallo di un giorno va es da
     2016-08-25 00:00:00
     a
     2016-08-25 59:59:59
    quindi con i dati dai $_POST ti costruisci l'intervallo
    */
    $inizio="$anno-$mese-$giorno 00:00:00";
    $fine="$anno-$mese-$giorno 59:59:59";
    // fai la query aggiungendo i nomi dei campi per umidità e pressione (non so come si chiama il campo della data)
    $q="SELECT min(temperatura) as t_min max(temperatura) as t_max FROM meteo WHERE data BETWEN $inizio AND $fine";
    $ris=mysqli_query($connessione, $q);
    if(mysqli_num_rows($ris)){
        echo "non ci sono valori per la data inserito";
        //e rimandi dove vuoi es al form
    }else{
        $riga=mysqli_fetch_array(£ris);
        var_dump($riga);//ho messo un var_dump ma tu metterai quello che ti serve
    }
}
//...............
?>
prova, ala massimo non funziona
 

giacomo9783

Utente Attivo
24 Ago 2016
86
0
6
38
Credo che sia proprio quello che cercavo di fare per quanto riguarda il form per interrogare il database. Grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
scusa ho fatto un errore, se pensi che ti serve correggi
$fine="$anno-$mese-$giorno 59:59:59";
in
$fine="$anno-$mese-$giorno 23:59:59";
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Estrarre valori duplicati più volte PHP 0
L estrarre valori max tra più tabelle MySQL 2
M Estrarre valori MAX da un db con una left join MySQL 8
C [PHP] Estrarre da una classe i valori che mi interessano PHP 5
S [Javascript] come estrarre valori array e inserirli in diverse variabili Javascript 1
asevenx [PHP] Estrarre valori evitando dublicati dal database PHP 2
F estrarre 5 valori per volta con mysql_fetch_array con annesso bottone PHP 12
R Estrarre i valori indipendentemente dagli spazi PHP 2
cosov Estrarre valori unici per classifica Classic ASP 4
M Estrarre valore con SELECT COUNT PHP 0
D Estrarre database con link esterno Database 10
S Raggruppare ed estrarre data più recente MySQL 3
F Estrarre ultima foto da cartelle PHP 2
C Estrarre dati stringa Sql Database 1
L Estrarre da Cartella una determinata 'via' PHP 15
J estrarre url dei file video da youtube "get_video_info" PHP 6
M Estrarre dati da una select HTML PHP 3
S [PHP] Estrarre dati da tabella e fare la media ad intervalli di tempo PHP 10
R [PHP] Estrarre id utente loggato.? PHP 4
S [PHP] Estrarre elementi array su più variabili PHP 5
S [PHP] Estrarre dati tabella in diversi array PHP 2
P [MS ACCESS] Estrarre più somme da una query MS Access 4
trattorino estrarre titolo video facebook in php PHP 0
D [WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato WordPress 0
N [PHP] Estrarre singolo valore da array PHP 4
trattorino [PHP] sql estrarre in base all'ultima visita PHP 4
P [Visual Basic] access sql estrarre id vendite x cli e articolo con data maggiore del recordset Visual Basic 2
Jensen [PHP] Estrarre prossimi 4 lunedì PHP 4
trattorino [PHP] estrarre dati singoli PHP 1
G [PHP] estrarre data da timeline yyyy-dd-gg hh:mm:ss PHP 4
Z Estrarre dati da un DB Mysql PHP 4
I database mysql estrarre due tabelle Database 2
S [PHP] Estrarre dati colonna in una stringa PHP 6
S [PHP] estrarre dati sito web protetto con username e password PHP 13
Merlina3377 [PHP] estrarre solo un determinato id da tanti con REGEXP O LIKE PHP 1
Gigi87 estrarre i dati da un forum o social network Presentati al Forum 1
trattorino Estrarre Nome Utente jquery div php PHP 9
trattorino [Javascript] estrarre id link yt Javascript 1
S [PHP] estrarre le email da un elenco di url PHP 21
T4MAR4 [PHP] estrarre tag da un testo PHP 3
T [PHP] Estrarre stringa PHP 3
G [PHP] ESTRARRE DA DB VALORE MASSIMO E MINIMO IN UN INTERVALLO IMPOSTABILE A PIACERE PHP 56
bubino8 [PHP] Estrarre dominio No Sottodomini PHP 10
L [PHP] Estrarre dati da sito web Offerte e Richieste di Lavoro e/o Collaborazione 4
sandropochi [PHP] Query per estrarre record con data successiva a quella odierna PHP 2
gandalf1959 Estrarre da un db mysql le mail, eliminando le doppie PHP 6
giancadeejay [PHP] Estrarre solo record dell'utente connesso PHP 4
U [PHP] estrarre i risultati di una query e visualizzarli in una tabella. PHP 9
S [PHP] estrarre numero da stringa PHP 5
giuseppe_123 [PHP] Estrarre giorno mese e anno da una data PHP 2

Discussioni simili