[PHP] problema maggiore e minore

  • Creatore Discussione Creatore Discussione tripla_m
  • Data di inizio Data di inizio

tripla_m

Nuovo Utente
1 Feb 2019
2
0
1
Ciao a tutti
questo è il mio primo post in questo forum e sono arrivato fin qua per questo problema.
Devo prelevare da una tabella sql (uso altervista come host del mio sito) i valori meteorologici di temperatura, pressione e umidità in una data specifica, e fin qua nessun problema. Il problema nasce quando devo tirarmi fuori i valori massimi e minimi di quella giornata. Questo è il codice:

PHP:
            $ultimo_t = mysql_query ("SELECT * FROM meteo WHERE date_temp = CURDATE()");
            $num = mysql_num_rows($ultimo_t);
            
            for($i;$i<$num;$i++){
                $t = mysql_fetch_array($ultimo_t);
                
                if($t['temperatura'] > $t_max['temperatura']){
                    $t_max['temperatura'] = $t['temperatura'];
                }
                
                if($t['temperatura'] < $t_min['temperatura']){
                    $t_min['temperatura'] = $t['temperatura'];
                }
            }
            
            echo($t_max['temperatura']);
            echo("/");
            echo($t_min['temperatura']);

Il problema non è con t_max, bensì con t_min che non riesco a vedere in nessun modo.
Voi avete qualche idea

P.S. non son molto bravo con php, ma capisco molto bene il C
 
come detto devi inizializzare i valori di partenza prima del for (attento al segno meno),
PHP:
$t_max['temperatura'] = -9999999.99;
$t_min['temperatura'] =  9999999.99;

for($i;$i<$num;$i++){

poi dovresti evitare le parentesi all'echo
PHP:
echo $t_max['temperatura'];
echo "/";
echo $t_min['temperatura'];
,
 
caricando i dati fetchall(), basterebbe solo questo, senza confronti etc...
PHP:
//in es: $model=array(0=>array('temperatura'=>int)......);
$array=new SplFixedArray($num);
$array = array_column($model, 'temperatura');
echo min($array).' - '.max($array); //rispettivamente Temperatura minima e Temperatura massima dal cluster
 
ciao a tutti e grazie per l' aiuto. In effetti non avevo dichiarato nulla, mi è bastato mettere tutto dentro a un array e poi con la funzione min e max prelevare i valori. Ecco il codice:
PHP:
$ultimo_t = mysql_query( "SELECT temperatura FROM meteo WHERE date_temp = CURDATE()" );
            $array_t = array();
            while($t = mysql_fetch_array($ultimo_t)){
                $array_t[] = $t[0];
            }
echo min($array_t);
echo max($array_t);

Poi questo codice l'ho ripetuto anche per la pressione e l' umidità
 

Discussioni simili