public function SommaTotali(){
$command=Yii::app()->db->createCommand();
$command->select('SUM(totale)');
$command->from('sessione');
$command->where('operatore_id = :operatore_id', array(':operatore_id'=>Yii::app()->user->id));
echo $command->queryScalar();
}
Con questa funzione faccio il calcolo del totale del cliente sommando tutti i totali delle sue operazioni.
Ora con un form “normale html e php” nel campo value richiamerei la funzione con value="<?php echo Missiva::SommaTotali()?>" in maniera tale che all’ interno del input mi stampi il totale. Con Yii riesco a farlo stampare solo all’ esterno e non dentro l’ input!!!! Notare allegato!!! Come posso fare per stampare all’ interno dell’ input?
Mi serve stampare all’ interno dell’ input perchè poi tramite una funzione in java mi faccio dei calcoli. Ho provato vari modi ma non riesco. Ultima prova
con return avevo provato, ma sbagliavo il richiamo.
Alla fine ho risolto, non cosa sbagliavo…ma sbagliavo!!!
Dall’ ultima prova che avevo fatto sbagliavo qui
$model->totale = $_POST[Missiva::SommaTotali()];
avrei dovuto fare cosi :
$model->totale = Missiva::SommaTotali();
Sicuramente quando ho inserito questo richiamo lavoravo con echo nella funzione e non con return, per questo continuava a stampare fuori dall’ input e mi sono inervosito.
Questo dimostra che mi sono smarrito in una goccia d’ acqua…colpa della fretta e della poca attenzione al modello in fase di crezione del form.
Comunque non ho usato il Group By. A dire il vero fino ad ora con Yii non ho mai usato il Group By. In questa funzione la mia regola era sommare i totali in base a operatore_id che in questo caso equivale all’ ID dell’ utente che sta usando una determinata cassa in un determinato momento.
Se hai 2 minuti da "buttare" via puoi spiegarmi come usare il Group By e che benfici posso avere in una query del genere?
Te ne sarei grato.
Come sempre grazie dei consigli, che a un principiante come me sono sempre utili
Allora, nella query specifica, il group by non da benefici, però ricorda che le funzioni ‘statistiche’ (come COUNT, SUM, MIN, MAX, AVERAGE, etc…) agiscono sempre su ‘gruppi di record’.
Nel tuo caso c’è un unico gruppo, per via del filtro WHERE applicato, e i dati sono corretti.
Se però stavi prendendo la somma di ciascun operatore dove inserire un
$command->group('operatore_id');
In questo modo avresti ottenuto ‘n’ record, uno per id operatore, e ciascun avrebbe la somma corretta, calcolata per ciascun operatore