Joomla.it Forum
Componenti per Joomla! => Gestione Form => : kamer67 17 Nov 2013, 10:50:40
-
Ciao a tutti sono nuovo del forum, mi sono avvicinato da poco a chronoforms sto sviluppando una mia idea e non riesco a ricavare la somma dai record di una tabella.
Questo quello che faccio:
Nel form inserisco come actions un custom code composto così:
<?php
$db =& JFactory::getDBO();
$query = "
SELECT SUM(importo) FROM `tabella`
";
$db->setQuery($query);
$data = $db->loadObjectList();
foreach($data as $a) {
echo $data;
}
?>
Non mi da nessun errore ma Il risultato che compare è Array al posto della somma.
Potete aiutarmi?
Grazie
Mario
-
Ciao e benvenuto nel forum
Nella tua query non si capisce cosa vuoi sommare se dei valori di campi o il numero delle ricorrenze dei campi.
-
Grazie per la risposta, vorrei sommare il campo importo per avere un totale generale.
Mario
-
prova con questa query:
$q = mysql_query('SELECT SUM(importo) AS somma FROM tabella');
$r = mysql_fetch_assoc($q);
echo $r['somma'];
-
<?php
$db = JFactory::getDBO();
$query = "SELECT SUM(importo) FROM `tabella`";
$db->setQuery($query);
$sum= $db->loadResult();
echo $sum;
?>
ciao kamer67.
bene l'uso delle funzioni del framework di joomla, ma due cose:
$db = JFactory::getDBO();
l'uso di & è deprecato, dato che gli oggetti sono sempre restituiti come puntatori.
$sum= $db->loadResult();
se devi leggere uno scalare usi loadResult(), se devi leggere un vettore loadObjectList; in questo ultimo caso devi sempre usare un alias per le funzioni di aggregazione altrimenti non puoi recuperarne il valore.
SUM(importo) AS somma
ciao,
marco
-
dimenticavo:
foreach($data as $a) {
echo $data;
}
meglio così: ;D
foreach($data as $a) {
echo $a;
}
ciao.
-
OK grazie per il prezioso aiuto.
Con i vostri consigli e qualche ricerca sono arrivato a questa conclusione che funziona:
<?php
mysql_connect("localhost", "admin", "password") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$query = "
SELECT SUM(importo) FROM tabella
";
$db = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($db)){
echo "Totale ". " € ". $row['SUM(importo)'];
echo "
";
}
?>
Ora devo legare la somma ai soli campi appartenenti all'utente loggato.
Penso di intervenire sulla query.
Ovvero ottengo l'ID dell'utente loggato e lo passo come parametro alla query.
Giusto?
Mario
-
se cambi provider sei fregato: non funziona più niente e bisogna capire il perché, quindi non usare mai credenziali hard coded e stai sulle funzioni del framework di joomla.
ps: l'uso delle funzioni mysql_* è deprecato.
ciao