Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: Query somma Risposte

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2021
    residenza
    Padova
    Messaggi
    9

    Query somma Risposte

    Salve vorrei trovare il totale di una query dove:

    Codice PHP:
    $_conta_R="SELECT RISP_valore FROM risposte where RISP_id ='".$_conta_risposte."'";
    $_R_conta_totale $db->query($_conta_R);
    while(
    $_R_conta_rigo mysqli_fetch_array($_R_conta_totaleMYSQLI_ASSOC))
    {
    $_R_valore $_R_conta_rigo ["RISP_valore"];
    echo (
    $totale)$_R_valore."<br>";

    $_conta_risposte ne sono diversi

    nel DB RISP_valore è tipo double


    visualizzo:
    RISP_valore 0.5
    RISP_valore 0.5
    RISP_valore 0.5
    RISP_valore 0.0
    RISP_valore 0.5


    il totale dovrebbe essere 2

    Spero di essere riuscito a farmi capire
    Grazie mille e buona domenica

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,217
    Usa una variabile inizializzata a 0 prima del while e dentro al while, ad ogni iterazione, ci sommi il valore contenuto in $_R_valore
    Earth2: 3QCNSPFQUH

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2021
    residenza
    Padova
    Messaggi
    9
    Grazie, fo fatto come hai suggerito e spero di aver capito
    codice:
    $_conta_R="SELECT RISP_valore FROM risposte where RISP_id ='".$_conta_risposte."'";
    $_R_conta_totale = $db->query($_conta_R);
    $totale = 0;
    while($_R_conta_rigo = mysqli_fetch_array($_R_conta_totale, MYSQLI_ASSOC))
    {
    $_R_valore = $_R_conta_rigo ["RISP_valore"];
    $totale += $_R_valore;
    }
    echo ($totale)."<br>";
    mail risultato e sempre:
    RISP_valore 0.5
    RISP_valore 0.5
    RISP_valore 0.5
    RISP_valore 0.0
    RISP_valore 0.5

    Grazie

  4. #4
    se ti serve solo il totale, basta usare SUM() nella query...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2021
    residenza
    Padova
    Messaggi
    9
    Grazie, $_conta_risposte ha diversi id, di seguito lo script completo provenienti da un form


    codice:
    $_D_query="SELECT * FROM domande";
    $_D_totale= $db->query($_D_query);
    while($_D_rigo = mysqli_fetch_array($_D_totale, MYSQLI_ASSOC))
    {
    $_D_id_dom = $_D_rigo ["DOM_id"];
    //==================================================================================
    $_conta_risposta = isset($_POST["ris_".$_D_id_dom]) ? $_POST["ris_".$_D_id_dom] : array();
    //==================================================================================
    foreach($_conta_risposta as $_conta_risposte)
    {
    //==================================================================================
    $_conta_R="SELECT RISP_valore FROM risposte where RISP_id ='".$_conta_risposte."'";
    $_R_conta_totale = $db->query($_conta_R);
    $totale = 0;
    while($_R_conta_rigo = mysqli_fetch_array($_R_conta_totale, MYSQLI_ASSOC))
    {
    $_R_valore = $_R_conta_rigo ["RISP_valore"];
    $totale += $_R_valore;
    }
    echo ($totale)."<br>";
    }
    Grazie

  6. #6
    non ho capito se stavi rispondendo a me

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2021
    residenza
    Padova
    Messaggi
    9
    ad entrambi, grazie

  8. #8
    allora ti rifaccio la domanda: ti serve sapere SOLO il totale?

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,217
    L'inizializzazione di $totale è dentro un altro ciclo, il foreach, quindi ad ogni iterazione torna ad essere 0.

    Vedi però cosa dice optime, che se è come dice lui risolvi tutto nella query.
    Earth2: 3QCNSPFQUH

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2021
    residenza
    Padova
    Messaggi
    9
    Grazie a tutti, usando SUM()

    codice:
    $_conta_R="SELECT sum(RISP_valore) as totale FROM risposte where RISP_id ='".$_conta_risposte."'";
    $_R_conta_totale = $db->query($_conta_R);
    while($_R_conta_rigo = mysqli_fetch_array($_R_conta_totale, MYSQLI_ASSOC))
    il risultato e sempre:

    RISP_valore 0.5
    RISP_valore 0.5
    RISP_valore 0.5
    RISP_valore 0.0
    RISP_valore 0.5

    io vorrei come totale RISP_valore= 2
    Buona giornata

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 © 2021 vBulletin Solutions, Inc. All rights reserved.