Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,559

    Sommare un campo di ogni riga della tabella con SUM

    Ciao a tutti
    avrei bisogno di sommare il campo voto_hotel che rappresenta il giudizio lasciato ad un albergo in modo da estrarre una media.
    Al momento sto usando questo codice:
    codice:
    $conteggio_voti="select SUM(voto_hotel) as quanti, DATE_FORMAT(data_commento, '%d/%m/%Y') AS data_commento FROM recensioni where hotel=\"$id_hotel\" and data_commento >='$periodo_recensioni' ";
    $result_conteggio_voti = $conn->query($conteggio_voti);
    Il problema è che se faccio l'echo di $result_conteggio_voti mi da errore:


    Fatal error: Uncaught Error: Object of class mysqli_result could not be converted to string in...


    Dove sbaglio?
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,038
    $result_conteggio_voti contiene un resultset, devi fare prima il fetch, poi l'echo.

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,559
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    $result_conteggio_voti contiene un resultset, devi fare prima il fetch, poi l'echo.
    quindi cosi:

    Codice PHP:
    $conteggio_voti="select SUM(voto_hotel) as quanti, DATE_FORMAT(data_commento, '%d/%m/%Y') AS data_commento FROM recensioni where hotel=\"$id_hotel\" and data_commento >='$periodo_recensioni' ";$result_conteggio_voti $conn->query($conteggio_voti);while($riga_conteggio_voti $result_conteggio_voti->fetch_assoc()) {    $quanti $riga_conteggio_voti["quanti"];}echo"$quanti"
    sembra funzionare... ma è corretto?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,038
    Essendo un SUM, ci sarà un solo record, è inutile mettere il fetch in un while, sarà eseguito sempre e solo una volta.

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,559
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Essendo un SUM, ci sarà un solo record, è inutile mettere il fetch in un while, sarà eseguito sempre e solo una volta.
    non ho capito, mi hai scritto tu di mettere il fetch, altrimenti come dovrei fare?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,038
    Il fetch non richiede il while, si mette nel while quando si prelevano dal db più recod, ma se ne prendi uno solo il ciclo non serve, fai il fetch una volta e basta.

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,559
    e non saprei come fare senza il while

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,038
    Lo togli e usi solo l'istruzione che hai messo dentro la sua condizione, quella è il fetch.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.