Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    ottenere un totale da un db

    ciao a tutti,

    dato il codice in basso, recupero tutti gli articoli inseriti in un ordine...

    alla fine della tabella vorrei poter effettuare il totale di tutti i subtotali

    mi date qualche dritta? grazie, daniele.

    Codice PHP:
    echo "<table width=\"600px\">";
        echo 
    "<tr>\n";
     echo 
    "<td>\n";
     echo 
    "";
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    "[b]Q.tà</b";
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    "[b]Art.[/b]";
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    "[b]Descrizione[/b]";
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    "[b]Sc. %[/b]";
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    "[b]Impon. €[/b]";
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    "[b]SubTot €[/b]";
        echo 
    "</td>\n";
        echo 
    "</tr>\n";
     
    // recupero i dati dal DB
    $query "SELECT * FROM dettaglio WHERE ID_ORDINE ='".$sql_cod_ordine ."'"
    $res =  mysql_query($query) or die (mysql_error());
    // numero delle immagini presenti nel DB
    $n_img mysql_num_rows($res);
    // verifico che il DB ospiti almeno un'immagine
    if($n_img >= ){
      
    // stabilisco il numero di righe e colonne della nostra tabella per l'impagninazione
      
    $colonne 1;
      
    $righe=0;
      
    // ciclo tutti i record recuperati attraverso la nostra query
      
    while ($f=@mysql_fetch_array($res)){
        
    $righe++;
        
    $id_dettaglio $f['ID_DETTAGLIO'];
     
    $id_ordine $f['ID_ORDINE'];
        
    $id_prodotto =  stripslashes($f['ID_PRODOTTO']);
        
    $quantita stripslashes($f['QUANTITA']);
        
    $sconto stripslashes($f['SCONTO']);
        
    $totale stripslashes($f['TOTALE']);
     
    $fascia_del=$_POST["fascia"];
     
     
    //recupero descrizione e nome del prodotto
     
     
    $mysqlc->query("SELECT * FROM prodotti WHERE ID_PRODOTTO='".$id_prodotto."';");
      
    $result_prod mysql_fetch_array($mysqlc->resultMYSQL_ASSOC);
     
        
    // stampo la cella contenente i dati
     
        
    echo "<tr>\n";
     echo 
    "<td>\n";
     echo 
    "<input type=checkbox name='$id_dettaglio' value='$id_dettaglio'>";
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    $quantita;
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    $result_prod['NOME'];
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    $result_prod['DESCRIZIONE'];
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    $sconto;
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    $result_prod['PREZZO'];
        echo 
    "</td>\n";
     echo 
    "<td>\n";
     echo 
    $totale;
        echo 
    "</td>\n";
        echo 
    "</tr>\n";
        echo 
    "<tr>\n";
        echo 
    "<td colspan=\"8\">\n"
        echo 
    "<hr>\n"
        echo 
    "</td>\n"
        echo 
    "</tr>\n";
     
        
    // quando il numero di righe equivale al valore impostato nella variabile $righe
        // procedo a chiudere la linea e ad azzerare il valore di $righe
        
    if ($righe == $colonne){
          echo 
    "</tr><tr>\n";
          
    $righe 0;
        }
      }
    }else{
      
    // stampo un messaggio se il DB è vuoto
      
    echo "Nessun Prodotto inserito. Seleziona un prodotto, indica la quantità e premi [b]invio[/b].";
    }
     echo 
    "<tr><td colspan='5' height='25' align='center'><input type='hidden' name='del_id' value='$id_ordine'><input type='hidden' name='fascia' value='$fascia_del'><input type=reset value='Ripristina'><input type=submit value='Elimina Selezionati'>";
    @
    mysql_close($cn);
    echo 
    "</table>";
    ?>
      </form> 
    nello specifico, la variabile $totale = stripslashes($f['TOTALE']); della tabella "dettaglio" contiene il costo di ogni singolo articolo

    mi servirebbe totalizzare tutti i campi TOTALE della tabella DETTAGLIO che condividono lo stesso id_ordine

    PS= la tabella dettaglio ha i seguenti campi: id_dettaglio; id_ordine; id_prodotto; imponibile; quantita; totale.

    aspetto le vostre considerazioni.

    a presto.
    ---------------------------
    danielix05

  2. #2
    select sum(totale) from dettaglio where id_ordine=metti la variabile dell'id ordine

    in pratica sum fa la somma del campo totale a patto che sia un campo con soli valori numerici!


  3. #3

    STEP 2

    GRAZIE ROBERTO1982,

    io ho la necessità di questa query
    codice:
    $query = "SELECT *, SUM(TOTALE) AS tot2 FROM dettaglio WHERE ID_ORDINE ='".$sql_cod_ordine ."' GROUP BY ID_ORDINE";
    se non metto il GROUP BY mi restituisce quest'errore

    Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
    il problema è che se metto GROUP BY ID_ORDINE mi dà il risultato totale corretto ma mi visualizza solo una riga di tutti gli ordini fatti

    io dovrei invece vedere tutti i prodotti inseriti con lo stesso ID_ORDINE e ovviamente il totale della colonna TOTALE.

    questo risultato lo ottengo ripetendo la query più in basso
    codice:
    $mysqlc->query("SELECT SUM(TOTALE) AS tot2 FROM dettaglio WHERE ID_ORDINE='".$sql_cod_ordine ."';");
    
    		$result_tot = mysql_fetch_array($mysqlc->result, MYSQL_ASSOC);
    		$tota = $result_tot['tot2'];
    ma mi sembra esagerato fare due query sulla stessa tabella non credi?
    ---------------------------
    danielix05

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.