Salve a tutti, questo è il mio primo post.
Sto facendo per imparare php e mysql un piccolo sito di gestione conti come esercizio.
Sono un paio di ore che mi sto scervellando e non capisco perche il mio ciclo foreach mi stampa il tutto due volte:
Auto |
Nome |
Ammonto |
Giorno |
Spese |
a |
1000 |
13 |
a |
1000 |
13 |
b |
123 |
14 |
b |
123 |
14 |
Spesa in italia |
100 |
25 |
Spesa in italia |
100 |
25 |
Entrate |
Lotteria |
300 |
4 |
Lotteria |
300 |
4 |
Soldi trovati per terra |
200 |
13 |
Soldi trovati per terra |
200 |
13 |
Limite |
100 |
Totale spese |
2446 |
Totale entrate |
500 |
Bilancio |
-1846
|
Questo è il codice php:
Codice PHP:
<?php include "bdd_connect.php";include "navbar.php" ?>
<?php $query_data = $bdd->query('SELECT * FROM conti ORDER BY nome_conto');
foreach ($query_data as $data) {?>
<div class="container"> <table id="table" class="table">
<tr> <td colspan="3"><h1><?php echo $data['nome_conto'] ?></h1></td> </tr> <tr> <td><h4>Nome</h4></td><td><h4>Ammonto</h4></td><td><h4>Giorno</h4></td> </tr> <tr> <td colspan="3"><h4>Spese</h4></td> </tr>
<?php
$count = 0; $sommaSpesa = 0; $sommaEntrata = 0;
$req = "SELECT spese.nome_spesa AS nomeSpesa, montante_CHF, giorno, spese.id AS id FROM spese, monete WHERE fk_conto = :id"; $req_values = array( 'id' => $data['id'] ) or die(print_r($query_data->errorInfo(), true));
if (isset($_POST['filtro'])) {
if($_POST['annoFiltro']!=""){ $req = $req . " AND anno = :annoFiltro"; $req_values["annoFiltro"] = $_POST['annoFiltro']; }
if($_POST['meseFiltro']!=""){ $req = $req . " AND mese = :meseFiltro"; $req_values["meseFiltro"] = $_POST['meseFiltro']; }
}
$req = $req . " ORDER BY giorno+0";
$query_conto = $bdd->prepare($req); $query_conto->execute($req_values) or die(print_r($query_data->errorInfo(), true));
foreach ($query_conto as $data_conto) { $sommaSpesa = $sommaSpesa + $data_conto['montante_CHF']; ?>
<tr> <td><?php echo $data_conto['nomeSpesa'] . "<br>"; ?></td> <td><?php echo $data_conto['montante_CHF'] . "<br>"; ?></td> <td><?php echo $data_conto['giorno'] . "<br>"; ?></td> </tr>
<?php } if ($count == 0) { ?> <tr> <td colspan="3"><h4>Entrate</h4></td> </tr>
<?php $count = 1; } ?>
<?php $req = "SELECT entrate.nome_entrata AS nomeEntrata, montante_CHF, giorno, entrate.id AS id FROM entrate, monete WHERE fk_conto = :id"; $req_values = array( 'id' => $data['id'] ) or die(print_r($query_data->errorInfo(), true));
if (isset($_POST['filtro'])) {
if($_POST['annoFiltro']!=""){ $req = $req . " AND anno = :annoFiltro"; $req_values["annoFiltro"] = $_POST['annoFiltro']; }
if($_POST['meseFiltro']!=""){ $req = $req . " AND mese = :meseFiltro"; $req_values["meseFiltro"] = $_POST['meseFiltro']; }}
$req = $req . " ORDER BY giorno+0";
$query_conto = $bdd->prepare($req); $query_conto->execute($req_values) or die(print_r($query_data->errorInfo(), true));
foreach ($query_conto as $data_conto) { $sommaEntrata = $sommaEntrata + $data_conto['montante_CHF'] / 2; ?>
<tr> <td><?php echo $data_conto['nomeEntrata'] . "<br>"; ?></td> <td><?php echo $data_conto['montante_CHF'] . "<br>"; ?></td> <td><?php echo $data_conto['giorno'] . "<br>"; ?></td> </tr> <?php }
$limite = $data['limite'];
$totale = round($limite + $sommaEntrata - $sommaSpesa, 2);
?>
<tr> <td><h4>Limite</h4></td> <td colspan="2"><?php echo $data['limite'] . "<br>"; ?></td> </tr> <tr> <td><h4>Totale spese</h4></td> <td colspan="2"><?php echo round($sommaSpesa, 2); ?></td> </tr> <tr> <td><h4>Totale entrate</h4></td> <td colspan="2"><?php echo round($sommaEntrata, 2); ?></td> </tr> <tr> <td><h4>Bilancio</h4></td> <td colspan="2"><?php echo round($totale, 2); ?></td> </tr>
<?php } ?>
</table></div>
Qualcuno puo darmi una mano?
Antonio