Visualizzazione dei risultati da 1 a 7 su 7

Discussione: errore sum_array

  1. #1

    errore sum_array

    Salve ho un prob con un sum_array
    praticamente dopo aver fatto una query inzio il ciclo while e mi da i risultati che chiedo , poi
    cerco di fare la somma dei valori media dentro l'array $rag e come risultato non mi da la somma ma l'ultimo valore (media) estratta!!!
    dove sbaglio...

    $sql = mysql_query ("SELECT * , avg( Valore ) AS media, COUNT(Valore) AS conta,SUM( Valore ) AS somma
    FROM misure
    GROUP BY DATA HAVING DATA BETWEEN '$data1' AND '$data2'");


    while ($rag = mysql_fetch_array($sql))
    {
    echo ' MEDIA '.$rag ['media'].' SOMMA '.$rag ['somma'] .' DATA '.$rag ['Data']?>
    <? ;
    //fino a qui funziona bene


    $arraymed= array($rag['media']);//creao un array con i valori media del array $rag

    }
    echo "somma = " . array_sum($arraymed) . "\n" //sommo e stampo

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    17
    Ciao, secondo me sovrascrivi sempre lo stesso valore e non riempi l'array, prova invece di:

    Codice PHP:
    $arraymed= array($rag['media']);//creao un array con i valori media del array $rag 
    questo:
    Codice PHP:
    $arraymed[]= $rag['media'];//creao un array con i valori media del array $rag 
    magari inizializza prima del loop:
    Codice PHP:
     $arramed=array(); 

  3. #3
    E se invece fai così?

    Codice PHP:
    ...
    $somma 0;
    while (
    $rag mysql_fetch_array($sql)) {
        ...
        
    $somma += $rag['media'];
        ...
    }
    echo 
    "somma = ".$somma."\n" 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    17
    Satifal, mi piace di più la tua soluzione, è più "economica" perché usa meno risorse, inutile riempire un array quando puoi sommare, spero quantomeno che il mio commento serva a evidenziare l'errore.

    Ciao!

  5. #5
    Grazie mille ho risolto usando il codice di satifal, quello di gremont non andava, in ogni caso potete spiegarmi i due codici , per comprendere meglio.. grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    17
    Quello che non andava nel tuo codice era sicuramente che pensavi di inserire dei valori in un array mentre invece sovrascrivevi ad ogni ciclo il valore precedente con quello nuovo, questo volevo segnalarti, che poi il codice non funzioni, questo è possibile perché non lo ho testato non avendomi tu dato sufficienti elementi (un esempio del risultato del db?).

    Comunque il sistema di satifal è migliore, io cercavo di segnalarti l'errore senza stravolgere il tuo codice, consiglio un bel ripasso degli array di php, ti può essere utile.

    Ciao

  7. #7
    Gremont si hai ragione io pensavo di creare un array invece lo sovrascrivevo, onestamente non ho capito perchè non va'il tuo codice,
    invece in quello di Satifal funziona, anche se ometto la var "$somma=0" ,
    non sapevo che esistesse questo tipo di espressione += nel codice php "$somma += $rag['media'];"

    ... grazie

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