eccolo qui! l'ho un po' modificato, ma continua a non darmi nessun segnale di funzionamento se non riportare pari pari le date a video... sicuramente ho scritto male qualche spazio/virgola/segno di punteggiatura
PHP:
<?php
require_once("config.php");
$con=mysql_connect($server,$user,$pwd);
$data1="2017-05-20";
$data2="2017-05-20";
$sql="SELECT MIN(TEMP) as 'min' FROM `METEO` WHERE TIMESTAMP_LOCAL betwen('$data1' and '$data2')";
$ris=mysqli_query($con, $sql);
$riga=mysqli_fetch_assoc($ris);
echo "GIORNO $data1 temperature: minima ".$riga['min']."°C<br>";
?>
<?php
require_once("config.php");
$con = mysqli_connect($server,$user,$pwd,$meteoluc_ignano);
$data1="2017-05-20";
$data2="2017-05-20";
$sql="SELECT MIN(TEMP) as min FROM METEO WHERE TIMESTAMP_LOCAL betwen('$data1' and '$data2')";
$ris=mysqli_query($con, $sql);
$riga=mysqli_fetch_assoc($ris);
echo "GIORNO $data1: temperatura minima ".$riga['min']."°C<br>";
?>
intanto ho aggiunto una "e" al "betwen" della query, ma ancora non mi compare il valore desiderato (temperatura minima)... Non sarà mica per caso il fatto che il TIMESTAMP_LOCAL è in formato "2017-05-20 12:34 13:55" e io inserisco nella query solo una parte, cioè 2017-05-20 ?
ad ogni modo, il server del mio sito mi logga un errore alla riga 10, cioè questa:
Codice:
$riga=mysqli_fetch_assoc($ris);
l'errore indicato è come segue:
[23-May-2017 18:11:01 Europe/Rome] PHP Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/meteolucignano/public_html/minmaxoggi1.php on line 10
ciao
la e mio errore di battitura
eventualmente due cose
aggiungi come aveva detto livellacri la parte mancante a $data1 e $data2 (attento agli spazi e separatori) 00:00 e 59:59
prova a togliere le parentesi ....TIMESTAMP_LOCAL betwen '$data1' and '$data2'
ottime notizie! tolte le parentesi e aggiunta l'ora dopo la data, l'estrazione del valore funziona a dovere
qui il codice funzionante:
Codice:
<?php
require_once("config.php");
$con = mysqli_connect($server,$user,$pwd,$db);
$data1="2017-05-23 00:00";
$data2="2017-05-23 23:59";
$sql="SELECT MAX(TEMP) as max FROM METEO WHERE TIMESTAMP_LOCAL between '$data1' and '$data2'";
$ris=mysqli_query($con, $sql);
$riga= mysqli_fetch_assoc($ris);
echo "GIORNO $data1: temperatura massima ".$riga['max']."째C<br>";
?>
adesso una chicca per il mio sito, spero si possa fare: vorrei stampare accanto al valore (in questo caso la temperatura massima) l'orario in cui è stata rilevata.. ovviamente dalla colonna TIMESTAMP_LOCAL
ciao
se ti da errore alla mysqli_fetch, l'eerore può nascera da $conn o dalla $ql o da $ris
comincia a mettere dei var_dump (che poi toglierai)
PHP:
<?php
require_once("config.php");
$conn = mysqli_connect($server,$user,$pwd,$db);
echo "<pre>";//poi lo togli ti serve per visualizzare bene i vari var_dump
var_dump($conn);//se ti da FALSE l'errore è nella connessione e quindi devi verificare dati di connessione
$data1="2017-05-20";
$data2="2017-05-20";
$sql="SELECT MIN(TEMP) as min FROM METEO WHERE TIMESTAMP_LOCAL between '$data1' and '$data2'";//prova con e senza parentesi
var_dump($sql);//verifica che venga scritta giusta
$ris=mysqli_query($con, $sql);
var_dump($ris);//se ti da FALSE ma la connessioene ti ha dato resorce (quindi ok) devi verificare nomi tabella e campi
$riga=mysqli_fetch_assoc($ris);
echo "GIORNO $data1 temperature: minima ".$riga['min']."°C<br>";
echo "</pre>";
?>
si si tranquillo, anzi infinite grazie per il Vostro aiuto che finora ha dato ottimi frutti... mancherebbe solo di stampare accanto al valore massimo il rispettivo orario in cui è stato scritto nel database.. .valore da tirar fuori dalla colonna TIMESTAMP_LOCAL, ma non saprei proprio come fare!
ciao
ho la vaga impressione che tu debba fare due query
PHP:
<?php
require_once("config.php");
$con = mysqli_connect($server,$user,$pwd,$db);
$data1="2017-05-23 00:00";
$data2="2017-05-23 23:59";
$sql="SELECT MAX(TEMP) as max FROM METEO WHERE TIMESTAMP_LOCAL between '$data1' and '$data2'";
$ris=mysqli_query($con, $sql);
$riga= mysqli_fetch_assoc($ris);
//echo "GIORNO $data1: temperatura massima ".$riga['max']."°C<br>";
$temp_max=$riga['max'];
$sql="SELECT TIMESTAMP_LOCAL FROM METEO WHERE (TIMESTAMP_LOCAL between '$data1' and '$data2') and TEMP=$temp_max LIMIT 1";
//TEMP è un numero float es 25.10 o una stringa '25,10' se è una stringa devi mettere gli apici TEMP='$temp_max'
$ris=mysqli_query($con, $sql);
$riga= mysqli_fetch_assoc($ris);
$data_ora=$riga['TIMESTAMP_LOCAL'];
//se ti serve la data e l'ora e forse meglio perche potrest cercare nell'intevallo di più giorni
$gg_h=explode(" ",$data_ora);
echo "data ".$gg_h[0]." alle ".$gg_h[1]." h la temperatura massima é stata ".$temp_max." °C";
?>
questo script però se nello stesso giorno hai due o più ore con temp massima ti ricava solo la prima ora, altrimenti con la seconda query si deve operara con un while ecc...
sappimi dire
p.s.
per le accentate e per caratteri speciali es ° usa é e ° eviti brutte visualizzazioni
credo che meglio di così non si possa fare... grazie ragazzi, siete MITICI !!!!!! penso che per il fatto di due o più orari con stessa temp non ci siano problemi di sorta! vi aggiornerò e sicuramente avrò bisogno di qualcos'altro, ma per ora "lo scheletro del codice" è fatto... mi devo solo metter giù e riportare i minimi e massimi di tutti, nonché fare un form di inserimento del giorno, così che sia possibile al visitatore del sito di poter interrogare il database a suo piaciemnto.
e se volessi ottenere i minimi e massimi, con relativi orari, di TEMPERATURA, UMIDITA', PRESSIONE E VENTO sfruttando una sola query? minimi e massimi GIA' FATTO... ma per i rispettivi orari sono in alto mare...
no con questi esempi estrai tutti i campi della tabella
PHP:
$sql="SELECT * FROM METEO WHERE TIMESTAMP_LOCAL between '$data1' and '$data2' ORDER BY TEMP LIMIT 1";
$ris=mysqli_query($con, $sql);
$riga_minimo = mysqli_fetch_assoc($ris);
var_dump($riga_minimo);