- Home
- Categorie
- Coding e Sistemistica
- Coding
- utilizzare il dato della somma
- 
							
							
							
							
							utilizzare il dato della sommaSalve a tutti. 
 Ho elaborato la seguente query:
 [PHP]$query = " SELECT SUM(notti) FROM notturni WHERE abitante = '$cod' and data_entrata > '$newdate' ";
 $sere = $mysqli->query($query);
 echo $sere ;[/PHP]Su PhpMyAdmin la query funziona. 
 Sul sito invece ricevo questo messaggio: ```
 Recoverable fatal error: Object of class mysqli_result could not be converted to stringCome posso fare per utilizzare il dato ? Grazie
 
- 
							
							
							
							
							Ciao, non puoi fare l'echo di un oggetto, puoi usare la funzione var_dump() che ti stampa il tipo di dato e il suo contenuto. Per stampare il risultato della query devi utilizzare la funzione fetch_array() in questo modo [PHP] 
 <?php$query = "SELECT SUM(notti) AS notti FROM notturni WHERE abitante = '$cod' and data_entrata > '$newdate'"; $result = $mysqli->query($query); while($row = $result->fetch_array(MYSQLI_ASSOC)) { echo $row['notti']; }[/PHP] N.B. Il tuo codice è vulnerabile alla SQL Injection, dovresti sanificare l'input e utilizzare le prepared statement. Ti lascio queste risorse 
 
- 
							
							
							
							
							Grazie flaviors200 della esaustiva risposta. 
 Ho seguito le tue indicazioni.Prima però volevo sottolineare che nello stesso file faccio un'altra query. 
 Per questo avevo usato un'altra variabile $sere e non $result.
 Non so se può creare un conflitto con la precedente query. :bho:Detto questo una volta eseguito il codice che mi hai suggerito, ricevo questo messaggio: Notice: Undefined index: notti in ... on line 111 
 Grazie ancora per la pazienza
 
- 
							
							
							
							
							[PHP] 
 $query = " SELECT SUM(notti) FROM notturni WHERE abitante = '$cod' and data_entrata > '$newdate' ";
 $result = $mysqli->query($query);
 while($row = $result->fetch_array(MYSQLI_ASSOC)) {print_r( $row ); // debug code 
 echo $row['notti']; }
 ?>[/PHP]Ho aggiunto print_r( $row ) e così ottengo questa risposta: Array ( [SUM(notti)] => 3 ) 
 Notice: Undefined index: notti in ....Il valore 3 calcolato da SUM(notti) va bene. Perchè mi dice che non esiste ? 
 
- 
							
							
							
							
							
In realtà non esiste nessuna key "notti", bensì SUM(notti), per farlo funzionare come vuoi tu dovresti dare un nome a quella somma di coseguenza la query dovrebbe essere così: $query = " SELECT SUM(notti) as sommaNotti FROM notturni WHERE abitante = '$cod' and data_entrata > '$newdate' "; per stampare poi: 
 echo $row['sommaNotti'];