Bonsoir,

il n'y a sûrement rien de très profond dans la question que je vais poser. Juste savoir comment implémenter habilement...
Alors voilà, j'ai une base de données Mysql concernant des transactions financières, et une page php. Le but est d'afficher total des recettes, total des depenses et bilan total pour chaque mois. Pour ça je fais 3 requêtes, requetebilan, requeterecettes et requetedepenses. Avec des commandes du type $resultbilan=mysql_query($requetebilan); l'ordi, résout ces requêtes. $rowbilan=mysql_fetch_array($resultbilan) permet de prendre les mois séparemment (les données sont regroupées par mois). Seulement si je vais pareil pour depenses et recettes, et que je range pour chaque mois les données dans un tableau, il peut arriver, quand il n'y a pas eu de dépense et/ou pas de recettes lors d'un mois que les colonnes se trouvent décalées. Voyez-vous ce que je veux dire???

Voilà le code (tout le code) qui correspond à ça. Pouvez-vous m'aider???

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?
function nb_color($montantaffich)
{
   if (($montantaffich) >= 0)
   {
      $color = 'blue';
   }
   else
   {
      $color = 'red';
   }
 
   echo '<span style="color: ' . $color . '">' . $montantaffich . ' €</span>';
//ceci est imparfait... les chiffres de la partie entière ne sont pas séparés par paquets de 3
}
?>
 
 
<h2>Bilan par mois</h2>
 
<?@ $db=mysql_pconnect("localhost","root");//on commence par se connecter à la base de données
 
if (!$db)
{echo "Erreur: je n'ai pas pu me connecter à la base de données";exit;}
else{echo "connection à la base de données ok<br>";}
 
 
 
 
mysql_select_db("compta");
 
 
$nom_mois = Array("", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", 
		"septembre", "octobre", "novembre", "décembre");
 
?>
 
<?
$annee0=date("Y");
$mois0=date("n");
$annee1=date("Y",mktime(0,0,0,$mois0 ,0,$annee0));
$mois1=date("n",mktime(0,0,0,$mois0,0,$annee0));
$annee2=date("Y",mktime(0,0,0,$mois1 ,0,$annee1));
$mois2=date("n",mktime(0,0,0,$mois1,0,$annee1));
 
echo '<table border=5>';
?>
 
 
 
<tr>
<td bgcolor="#cccccc" align=center>Mois</td>
<td bgcolor="#cccccc" align=center>Bilan</td>
<td bgcolor="#cccccc" align=center>dépenses</td>
<td bgcolor="#cccccc" align=center>recettes</td>
</tr>
<tr>
 
<?
$requetebilan="select SUM(montant), MONTH(datetransac),YEAR(datetransac)
from transac
where epargne!='1' and virement!='1'
group by MONTH(datetransac),
YEAR(datetransac)
ORDER BY
YEAR(datetransac) DESC,
MONTH(datetransac) DESC";
 
$requeterecettes="select SUM(montant), MONTH(datetransac),YEAR(datetransac)
from transac
where epargne!='1' and virement!='1' and montant>0
group by MONTH(datetransac),
YEAR(datetransac)
ORDER BY
YEAR(datetransac) DESC,
MONTH(datetransac) DESC";
 
$requetedepenses="select SUM(montant), MONTH(datetransac),YEAR(datetransac)
from transac
where epargne!='1' and virement!='1' and montant<0
group by MONTH(datetransac),
YEAR(datetransac)
ORDER BY
YEAR(datetransac) DESC,
MONTH(datetransac) DESC";
 
 
$resultbilan=mysql_query($requetebilan);
 
$resultrecettes=mysql_query($requeterecettes);
 
$resultdepenses=mysql_query($requetedepenses);
 
 
 
 
while($rowbilan=mysql_fetch_array($resultbilan))
{
$mois=$rowbilan['MONTH(datetransac)'];
$annee=$rowbilan['YEAR(datetransac)'];
 
$rowdepenses=mysql_fetch_array($resultdepenses);
$rowrecettes=mysql_fetch_array($resultrecettes);
 
 
echo "<tr><td>".$nom_mois[$mois]." ".$annee;
echo "<td align=right><h2>";nb_color($rowbilan['SUM(montant)']);echo "</td>";
echo "<td align=right><h2>";nb_color($rowrecettes['SUM(montant)']);echo "</td>";
echo "<td align=right><h2>";nb_color($rowdepenses['SUM(montant)']);echo "</td>";
 
 
$filtre=3;
 
?>
 
<form action="affichagetransactions.php" name="afficher" method=post>
<input type=hidden name=filtre value='3'>
<input type=hidden name=moisetude value=<? echo $mois?>>
<input type=hidden name=anneeetude value=<?echo $annee?>>
<td colspan=100><input type=submit value="afficher"></td>
</tr>
</form>
 
<? } ?>
 
</table>