Un modo:

Codice PHP:
if(mysql_num_rows($post_sql) > 0){ 
    
$subtot false;
    while(
$post_obj $data->estrai($post_sql)){
        
$cliente stripslashes($post_obj->Cliente);
                
$ordine stripslashes($post_obj->Ordine);
        if (
$cliente <> $oldcliente) {
            if (!(
$subtot===false) { // non è il primo cliente
                // QUI STAMPI $subtot per il cliente "precedente"
                
echo "Totale : ".$subtot;
                
$subtot 0// inizializzo per il successivo;
            
};
            echo 
"Cliente : ".$cliente;
        } else {
            echo 
"";
        };
        echo 
"Ordine: ".$ordine;
        
$subtot += ...; // qui devi fare la somma
        
$oldcliente $cliente;
        };
        echo 
"Totale : ".$subtot;
} else {
    echo 
"non ci sono valori";
}; 
In pratica mentre stampi gli ordini fai il totale, che poi stampi al ciclo successivo. L'ultimo deve essere stampato fuori dal ciclo, ovviamente.

Un'altra soluzione (preferibile) è memorizzare i dati nel ciclo e poi stamparli con un nuovo ciclo:
Codice PHP:
$dati = array();
if(
mysql_num_rows($post_sql) > 0){
    while(
$post_obj $data->estrai($post_sql)){
        
$cliente stripslashes($post_obj->Cliente);
                
$ordine stripslashes($post_obj->Ordine);
        if (!isset(
$dati[$cliente])) $dati[$cliente] = array('ordini' => array(), 'totale' => 0);
        };
        
$dati[$cliente]['ordini'][]=$ordine;
        
$dati[$cliente]['totale'] += ...; // aggiorna totale;
        
};
        foreach (
$dati as $cliente=>$info) {
            print 
"Cliente: ".$cliente;
            foreach (
$info['ordini'] as $ordine) {
                print 
"Ordine: ".$ordine;
            };
            print 
"Totale: ".$info['totale'];
        };
} else {
    echo 
"non ci sono valori";
}; 
..da ri-verificare :) e i totali puoi anche calcolarli nel 2o ciclo...