Popolare campi tabella con totali estratti da database

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
adesso scrivi la query così, assicurandoti che ci sia uno spazio che precede e segue "union"
PHP:
$query = "SELECT
  DATE_FORMAT(data, \"%c-%Y\") as meseanno
, SUM(totale) as totalemese
FROM `commesse`
WHERE YEAR(data) BETWEEN 2016 AND 2020
GROUP BY meseanno UNION SELECT
  DATE_FORMAT(data, \"13-%Y\") as meseanno
, SUM(totale) as totalemese
FROM `commesse`
WHERE YEAR(data) BETWEEN 2016 AND 2020
GROUP BY meseanno";
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Marino sei stato un grande,
non ho ben compreso cosa era errato nella precedente query, ma metterò le query al confronto e provero a comprenderlo.

Adesso dovrei sistemare solo quella parte di codice che mi permette di rendere la riga che contiene la scritta "Totale"
diversa dalle altre, prima avevo il codice nel php adesso il tutto è generato dalla query SELECT e mi sono incartato completamente.

HTML:
<tr style='color:green; font-weight: bold; text-align:left;'>
<th class='text-nowrap' scope='row' style='background-color:black; color:yellow;'>Totale Incasso</th>

L'immagine che riporto di seguito è generata proprio con php...

formattazione_cella_totale.png
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
vedi se va bene così,
PHP:
       $anni = array_keys($fatturati);
       for($i=1; $i<=13;$i++){
           $tr = "<tr>";
           if ($i == 13) {
               $tr = '<tr style="color:yellow; background-color:black; font-weight: bold; text-align:left;">';
           }
           echo $tr.'<td>'.$mesi[$i].'</td>';
           foreach($anni as $anno)
           {
              echo '<td>'.$fatturati[$anno][$i].' '.$euro.'</td>';
           }
           echo "</tr>";
1576259832130.png
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Un buongiorno a tutto il forum ed uno particolare e meritatissimo a Marino51,
grazie al suo supporto ho risolto il problema e con poche righe di codice mi ha permesso di integrare il totale.

Per correttezza e per i posteri lascio il codice completo

PHP:
<?php
$fatturati = ['2016'=>array_fill_keys(range(1,12),0),
                   '2017'=>array_fill_keys(range(1,12),0),
                   '2018'=>array_fill_keys(range(1,12),0),
                   '2019'=>array_fill_keys(range(1,12),0),
                   '2020'=>array_fill_keys(range(1,12),0),
                  
 ];

$query =
"SELECT
DATE_FORMAT(data, \"%c-%Y\") as meseanno
, SUM(totale) as totalemese
FROM `commesse`
WHERE YEAR(data) BETWEEN 2016 AND 2020
GROUP BY meseanno UNION SELECT
DATE_FORMAT(data, \"13-%Y\") as meseanno
, SUM(totale) as totalemese
FROM `commesse`
WHERE YEAR(data) BETWEEN 2016 AND 2020
GROUP BY meseanno";

$result = $mysqli->query($query);
while($data = mysqli_fetch_assoc($result)){
    $d = explode('-', $data['meseanno']); // in $d[0] ho il mese, in $d[1] l'anno;
    $fatturati[$d[1]][$d[0]] = $data['totalemese'];
}

// CREO UN ARRAY DI MESI
$mesi = [1=>'Gennaio', 2=>'Febbraio', 3=>'Marzo', 4=>'Aprile', 5=>'Maggio', 6=>'Giugno', 7=>'Luglio', 8=>'Agosto', 9=>'Settembre', 10=>'Ottobre', 11=>'Novembre', 12=>'Dicembre', 13=>'Totale'];
?>

<table class='table table-striped > fatturato'>
  <thead>
    <tr>
      <th scope='col'></th>
      <th class='intestazione_fatturato' scope='col'>
        Incasso<br>
        2016
      </th>

      <th class='intestazione_fatturato' scope='col'>
        Incasso<br>
        2017
      </th>

      <th class='intestazione_fatturato' scope='col'>
        Incasso<br>
        2018
      </th>

      <th class='intestazione_fatturato' scope='col'>
        Incasso<br>
        2019
      </th>

      <th class='intestazione_fatturato' scope='col'>
        Incasso<br>
        2020
      </th>
    </tr>
  </thead>

  <tbody>
  <?php
    $euro = "€";
    $anni = array_keys($fatturati);
    for($i=1; $i<=13;$i++){
        $tr = "<tr>";
        if ($i == 13) {
            $tr = '<tr style="color:yellow; background-color:black; font-weight: bold; text-align:left;">';
        }
        echo $tr.'<td>'.$mesi[$i].'</td>';
        foreach($anni as $anno)
        {
          echo '<td>'.$euro.' '.$fatturati[$anno][$i].'</td>';
        }
        echo "</tr>";
          }
  ?>
</tbody>
</table>


Grazie ancora per il supporto
 
Discussioni simili
Autore Titolo Forum Risposte Data
otto9due Popolare campi tabella excell da maschera access MS Access 0
D popolare campi tra th alla select PHP 36
L [MS Access] come popolare automaticamente i campi di una sottomaschera MS Access 8
S Popolare campi di input con metodo $.getJSON jQuery 6
K Popolare select con piu campi in orizzontale PHP 1
D Popolare array PHP 8
felino Excel: popolare una cella con la data di modifica della riga a cui appartiene Windows e Software 3
F classic asp popolare combo box javascript Presentati al Forum 1
V popolare tabella da mysql PHP 7
F (Vendo) Spazio Banner - Guest Post a poco prezzo su Blog popolare Vendere e Acquistare pubblicita' online 0
P popolare una select da input PHP 0
pup3770 Popolare random Database - per test MySQL 1
M Popolare menu a tendina in EDIT PHP 18
neo996sps [Laravel 5.1 + ajax] Popolare select concatenate Regioni, Province, Comuni PHP 1
W Popolare select da Jquery jQuery 2
D [Java] Popolare jtable da db Mysql con DefaulTableModel Java 1
B Cercare il nome più popolare su una tabella PHP 11
F Popolare tabella MySQL con i dati di un file .CVS MySQL 1
F popolare tendina con dati tabella PHP 4
L Popolare uitableviewcontroller partendo da uiviewcontroller Sviluppo app per iOS 0
K query per popolare una select tramite ajaxc php e xml ! Ajax 14
P Popolare una tabella da utenti: nazione, città, provincia PHP 0
S [risolto] Aiuto: ciclo php ( for / while). popolare select dinamicamente da array id. PHP 9
M Popolare una tabella con numero righe e colonne prefissate PHP 6
A funzione per popolare un drop down list Javascript 4
P Popolare tabella da file .sql PHP 0
P Popolare un Database da una mappa di google map PHP 7
S [ACCESS]: Database e interfaccia grafica, popolare caselle dinamicamente MS Access 0
P Popolare tabella da file .sql PHP 3
P [Vb.Net] Popolare un List View da database .NET Framework 1
neo996sps [Visual Studio] Popolare datagrid tramite query Visual Basic 0
garrincha Come faccio a far diventare popolare un video su youtube ? Social Media Marketing 3
neo996sps Popolare un array con dati prelevati tramite while PHP 5
Monital Popolare tabella con risultati di una query PHP 0
J Popolare tabella con risultati di una query PHP 2
L Flash AS3: popolare array di oggetti presenti in libreria Flash 0
T popolare database di una directory Database 1
M Popolare una Listview da database MySql PHP 5
S popolare il database CMS (Content Management System) 4
I Popolare una select da un'altra PHP 3
A popolare simpleConnect da php Flash 0
A popolare simpleConnect da php PHP 0
F popolare array in modo esatto Classic ASP 3
B Popolare combo in base ad un'altra combo Classic ASP 13
peppoweb Popolare un Lista a Tendina Dinamicamente PHP 2
X Popolare una select a selezione multipla?!?! PHP 1
G Disposizione campi HTML e CSS 6
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
G Campi multivalore Database 0
M Memorizzare i dati nei campi prima dell'invio al db PHP 4

Discussioni simili