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

Discussione: Somma dopo while

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    Somma dopo while

    ciao a tutti,

    faccio un while e estraggo tutti i record dal database, li posiziono in una tabella, tra questi c'è un campo prezzo adesso io vorrei fare la somma di tutta la colonna prezzo come posso fare??

    il dato che devo sommare l'ho scritto in grassetto

    codice:
    while($row_temperaneo = mysql_fetch_assoc($temperaneo)){ 
    		$art = $row_temperaneo['articolo'];
    		$qua = $row_temperaneo['quantita'];
    		$pre = $row_temperaneo['prezzo'];
    		
    		echo $pippo = "<table width=\"190\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\"><tr class=\"style3\"><td width=\"24\"><div align=\"center\" class=\"style13\">".$qua."</div></td><td width=\"77\"><div align=\"center\" class=\"style13\">".$art."</div></td><td width=\"79\"><div align=\"center\" class=\"style13\">€ ".$pre."</div></td></tr></table>";
    }
    :master: Grazie mille

  2. #2
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    Fallo lato SERVER quando fai la query. Ti faccio un piccolo esempio poi modificalo come ti serve

    $query = "SELECT id, articolo, quantita, SUM(prezzo) as totale FROM prodotti GROUP BY id"

    Poi richiami la somma dei prezzi
    $row['totale']


    In questa maniera tu fai lavorare il server. E' importantissimo conoscere a fondo l'SQL perché ti risolve molti problemi !
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  3. #3
    Utente di HTML.it L'avatar di thepooh
    Registrato dal
    Oct 2005
    Messaggi
    203
    in alternativa ti incrementi un campo all'interno del ciclo

    $campototale +=$pre;


  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ho provato cosi
    ma mi restituisce 0 non è possibile che la somma è 0

    ma nel campo i dati sono questi
    0.00
    5.00
    5.20
    58.00
    18.00
    5.00
    5.00
    5.00
    5.00
    5.00
    5.00
    5.00

    e la struttura della tabella è cosi

    codice:
    CREATE TABLE `temporaneo` (
      `id` int(11) NOT NULL auto_increment,
      `articolo` varchar(255) NOT NULL default '',
      `quantita` varchar(50) NOT NULL default '',
      `prezzo` decimal(11,2) NOT NULL default '0.00',
      PRIMARY KEY  (`id`)
    )

    codice:
    <?php
    function temporanea($conn,$articolo,$quantita,$prezzo){
    if ($articolo != "" AND $quantita != "" AND $prezzo != ""){
    $inserisco = ("INSERT INTO temporaneo  (articolo,quantita,prezzo)VALUES('$articolo','$quantita','$prezzo')"); 
    $inserimento = mysql_query($inserisco, $conn) or die(mysql_error());
    header("Location:nuovo.php");
    }else{
    $query_temperaneo = "SELECT * FROM temporaneo";
    $temperaneo = mysql_query($query_temperaneo, $conn) or die(mysql_error());
    $row_temperaneo = mysql_fetch_assoc($temperaneo);
    $totalRows_temperaneo = mysql_num_rows($temperaneo);
    
    $somma = "SELECT id, articolo, quantita, SUM(prezzo) as totale FROM temporaneo GROUP BY id" 
    $somma_totale = mysql_query($somma, $conn) or die(mysql_error());
    $row_somma = mysql_fetch_assoc($somma_totale);
    echo $row_somma['totale'];
    
    while($row_temperaneo = mysql_fetch_assoc($temperaneo)){ 
    
    $art = $row_temperaneo['articolo'];
    $qua = $row_temperaneo['quantita'];
    $pre = $row_temperaneo['prezzo'];
    							
    echo $pippo = "<table width=\"190\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\"><tr class=\"style3\"><td width=\"24\"><div align=\"center\" class=\"style13\">".$qua."</div></td><td width=\"77\"><div align=\"center\" class=\"style13\">".$art."</div></td><td width=\"79\"><div align=\"center\" class=\"style13\">€ ".$pre."</div></td></tr></table>";
    } 
    
    mysql_free_result($temperaneo);
    }
    }

    :master:

  5. #5
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822

    $row_somma = mysql_fetch_assoc($somma_totale);
    echo $row_somma['totale'];

    Non so .. io ho non ho mai usato ASSOC io ho sempre fatto tutto con
    mysql_fetch_array

    Prova a cambiare
    $row_somma = mysql_fetch_assoc($somma_totale);
    echo $row_somma['totale'];

    in


    $row_somma = mysql_fetch_array($somma_totale);
    echo $row_somma['totale'];
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    grazie mille ho appena risolto cosi
    codice:
    $somma = "SELECT SUM(prezzo*quantita) as totale FROM temporaneo";

  7. #7
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    Perfetto ! Occhio ad un cosa: la tabella si chiama "temporaneo" mentre la variabile l'hai chiamata "temperaneo". Non vorrei che poi in un futuro questa svista ti comportasse un errore !!
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ok grazie

    solo una cosina
    ho provato a fare questo ma mi dà errore
    codice:
    $query_temporaneo = "SELECT *, sum(prezzo) * sum(quantita) as tot FROM temporaneo";

    dove sto sbagliando!! :master:

  9. #9
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    Cosi non puo funzionare ! Guarda la query :

    SELECT *, sum (PREZZO) ecc ecc


    SELECT * Significa "PRENDI TUTTO" . Come fai a prendere tutto e dopo anche altri valori ?
    In quel caso la query andrebbe scritta cosi:
    "SELECT * FROM TEMPORANEO"

    e poi ti prendi i valori delle colonne in questo modo

    $row[0] (la prima colonna partendo da sinistra)
    $row[1] (la seconda colonna partendo da sinistra)


    e cosi via.
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    hai ragione presa dal SUM ho detto una stupidaggine!!


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