• User

    Problema con array_sum

    Salve a tutti, avrei un problemino con la somma di alcuni valori che io recupero tramite array. Questo è il codice:

    
    $query = mysql_query("SELECT * FROM estratto WHERE id=".$id."");
    $result = mysql_num_rows ($query);
    if ($result == 0) {
    echo "nessun estratto";
    } else {
    $somma = array();
    for($y=0; $y<$result; $y++)
    {
    $rs = mysql_fetch_row($query);
    $somma[] = $rs[3]; 
    echo array_sum($somma);
    
    ```Il problema sta nel fatto che io vorrei mi stampasse un unico numero che somma tutti i valori che estrae. Invece, nel caso ad esempio di un array che viene popolato da 3 valori, echo mi stampa il valore1, poi un secondo numero dato da valore1+valore2 e poi un terzo numero formato da valore1+valore2+valore3. Qualcuno mi sa dire dove sbaglio???
    Grazie a tutti.....

  • User Attivo

    Perchè usare un array quando lo puoi fare usando la clausola SUM nella query?
    $query = mysql_query("SELECT SUM(nomecampo) FROM estratto WHERE id=".$id."");


  • User

    Guarda in effetti non ho mai dovuto dare tanta ragione a qualcuno in vita mia.....come hai potuto intuire sono un principiante...:)
    Una domanda: siccome oltre a dover fare la somma di tutti i valori che estraggo devo anche visualizzarli uno per uno devo fare la query così

    $query = mysql_query("SELECT SUM(nomecampo),nomecampo FROM estratto WHERE id=".$id."");

    oppure posso estrarre ogni singolo valore anche se utilizzo SUM.
    Grazie per la tua gentilezza


  • User Attivo

    Questa query estrae tutti i valori però sommandoli .... così come l'hai scritta non ho mai provato ma credo non funzioni.


  • User

    Infatti non funziona. Come posso fare allora per estrarre sia la somma che i singoli valori? devo fare due query separate?
    Grazie...


  • User Attivo

    La cosa che mi viene subito in mente è questa ma ..... se ci penso bene è possibile contare i record per poi estrarre i dati sommandoli creando un array in base alla conta precedentemente fatta.

    $QUERY1 = "SELECT COUNT(id) FROM ......";
    $QUERY2 = "SELECT campo FROM ......"; seguito da un ciclo while o for per l'estrazione dei dati.