Back to top

Autore Topic: [RISOLTO]chronoforms sommare i record di una tabella  (Letto 3789 volte)

Offline kamer67

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
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
« Ultima modifica: 17 Nov 2013, 20:11:43 da kamer67 »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:chronoforms sommare i record di una tabella
« Risposta #1 il: 17 Nov 2013, 11:31:18 »
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.

Offline kamer67

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:chronoforms sommare i record di una tabella
« Risposta #2 il: 17 Nov 2013, 12:02:56 »
Grazie per la risposta, vorrei sommare il campo importo per avere un totale generale.

Mario


Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:chronoforms sommare i record di una tabella
« Risposta #3 il: 17 Nov 2013, 12:43:12 »
prova con questa query:
Codice: [Seleziona]

$q = mysql_query('SELECT SUM(importo) AS somma FROM tabella');

$r = mysql_fetch_assoc($q);
echo $r['somma'];

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:chronoforms sommare i record di una tabella
« Risposta #4 il: 17 Nov 2013, 13:32:18 »
Codice: [Seleziona]
<?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:

Codice: [Seleziona]
$db = JFactory::getDBO();l'uso di & è deprecato, dato che gli oggetti sono sempre restituiti come puntatori.

Codice: [Seleziona]
$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.

Codice: [Seleziona]
SUM(importo) AS somma
ciao,
marco


mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:chronoforms sommare i record di una tabella
« Risposta #5 il: 17 Nov 2013, 13:36:31 »
dimenticavo:

Codice: [Seleziona]
foreach($data as $a) {
  echo $data;
}

meglio così:  ;D
Codice: [Seleziona]
foreach($data as $a) {
  echo $a;
}

ciao.
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline kamer67

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:chronoforms sommare i record di una tabella
« Risposta #6 il: 17 Nov 2013, 13:44:34 »
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



Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:chronoforms sommare i record di una tabella
« Risposta #7 il: 17 Nov 2013, 13:58:38 »
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


mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif