- Home
- Categorie
- Coding e Sistemistica
- PHP
- utilizzare il dato della somma
-
utilizzare il dato della somma
Salve 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'];