• Home
  • Forum
  • Fare Web
  • PHP

Popolare campi tabella con totali estratti da database

  • Creatore Discussione Creatore Discussione elpirata
  • Data di inizio Data di inizio 5 Dic 2019
Prec.
  • 1
  • 2
Primo Prec. 2 di 2

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 13 Dic 2019
  • #21
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
  • 13 Dic 2019
  • #22
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...

 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 13 Dic 2019
  • #23
probabilmente si é perso uno spazio attorno ad union

per il colore, pazienta un attimo che ci provo
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 13 Dic 2019
  • #24
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>";
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
  • 14 Dic 2019
  • #25
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
 
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
Devi accedere o registrarti per poter rispondere.

Discussioni simili

Popolare campi tabella excell da maschera access
  • otto9due
  • 21 Gen 2015
  • MS Access
Risposte
0
Visite
3K
MS Access 21 Gen 2015
otto9due
D
popolare campi tra th alla select
  • dgianmarco
  • 5 Mag 2021
  • PHP
  • 2
Risposte
36
Visite
4K
PHP 3 Giu 2021
zorro
L
[MS Access] come popolare automaticamente i campi di una sottomaschera
  • luigi.ventre
  • 7 Lug 2018
  • MS Access
Risposte
8
Visite
10K
MS Access 9 Lug 2018
luigi.ventre
L
S
Popolare campi di input con metodo $.getJSON
  • SAC07PA
  • 5 Feb 2017
  • jQuery
Risposte
6
Visite
3K
jQuery 7 Feb 2017
criric
K
Popolare select con piu campi in orizzontale
  • Kelly
  • 26 Mar 2014
  • PHP
Risposte
1
Visite
2K
PHP 14 Apr 2014
criric
D
Popolare array
  • Domenico2013
  • 12 Ott 2020
  • PHP
Risposte
8
Visite
3K
PHP 20 Ott 2020
macus_adi
Excel: popolare una cella con la data di modifica della riga a cui appartiene
  • felino
  • 5 Feb 2020
  • Windows e Software
Risposte
3
Visite
5K
Windows e Software 5 Feb 2020
felino
F
  • Bloccata
classic asp popolare combo box javascript
  • falco4
  • 25 Nov 2019
  • Presentati al Forum
Risposte
1
Visite
1K
Presentati al Forum 26 Nov 2019
Max 1
V
popolare tabella da mysql
  • valerio matrix
  • 2 Feb 2019
  • PHP
Risposte
7
Visite
2K
PHP 25 Gen 2020
Noa
N
F
(Vendo) Spazio Banner - Guest Post a poco prezzo su Blog popolare
  • Fasa.Technology
  • 14 Lug 2016
  • Vendere e Acquistare pubblicita' online
Risposte
0
Visite
2K
Vendere e Acquistare pubblicita' online 14 Lug 2016
Fasa.Technology
F
P
popolare una select da input
  • paperinik4
  • 28 Mag 2016
  • PHP
Risposte
0
Visite
2K
PHP 28 Mag 2016
paperinik4
P
Popolare random Database - per test
  • pup3770
  • 9 Feb 2016
  • MySQL
Risposte
1
Visite
2K
MySQL 15 Feb 2016
pup3770
M
Popolare menu a tendina in EDIT
  • Max61
  • 26 Gen 2016
  • PHP
Risposte
18
Visite
3K
PHP 2 Feb 2016
Max61
M
[Laravel 5.1 + ajax] Popolare select concatenate Regioni, Province, Comuni
  • neo996sps
  • 14 Dic 2015
  • PHP
Risposte
1
Visite
3K
PHP 15 Dic 2015
filomeni
W
Popolare select da Jquery
  • WebDeveloper3
  • 20 Mar 2015
  • jQuery
Risposte
2
Visite
3K
jQuery 21 Mar 2015
WebDeveloper3
W
D
[Java] Popolare jtable da db Mysql con DefaulTableModel
  • Daniele Gessa
  • 15 Mar 2015
  • Java
Risposte
1
Visite
3K
Java 22 Mar 2015
Daniele Gessa
D
B
Cercare il nome più popolare su una tabella
  • Bruschetta95
  • 28 Ott 2014
  • PHP
Risposte
11
Visite
3K
PHP 29 Ott 2014
Bruschetta95
B
F
Popolare tabella MySQL con i dati di un file .CVS
  • Faber
  • 11 Giu 2014
  • MySQL
Risposte
1
Visite
3K
MySQL 14 Giu 2014
Faber
F
F
popolare tendina con dati tabella
  • Fabien
  • 23 Apr 2014
  • PHP
Risposte
4
Visite
2K
PHP 26 Apr 2014
borgo italia
L
Popolare uitableviewcontroller partendo da uiviewcontroller
  • LukeFerrari
  • 6 Apr 2014
  • Sviluppo app per iOS
Risposte
0
Visite
1K
Sviluppo app per iOS 6 Apr 2014
LukeFerrari
L
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?