Bonjour,
J'ai un problème concernant une boucle do while.
Je lis une table pour afficher le ou les enregistrements quand j'ai une rupture sur les mois.
Je commence donc par lire le premier enregistrement avant le do avec initialisation du sv mois, puis je fais le test du mois, ainsi que le test sur si on a écrit le mois (cpt_mois), sinon je cumule mes enregistrements du mois.
Jusque là tout va bien, j'affiche bien mes enreg, avec le total du mois 7, 1922.55, mais je n'affiche pas le tout dernier, celui du mois 8.
J'ai comme enregistrements :
15/07 caution 67 1608.90
31/07 téléphone 67 10.00
31/07 facture 67 303.65
05/08 lampe 67 108.60
Je suppose que je sors de la boucle do while puisque c'est le dernier enregistrement, alors comment puis je récupérer la dernière ligne du 05/08 pour qu'elle repasse dans ma boucle après le do et en faire l'affichage ?
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 $req = "select * from cpt_banque where cpt_date between '$date_deb' and '$date_fin' and ((cpt_scat = 67 and cpt_sens = 'D') or (cpt_cat = 5 and cpt_sens = 'C' and cpt_scat in (12,13,14,15))) order by cpt_date"; if ($ret = mysqli_query($connect, $req)) { $ligne = mysqli_fetch_assoc($ret); $sv_mois = 0; $cpt_mois = 0; do { $decoupe_date = explode('-', $ligne['cpt_date']); $mois = intval($decoupe_date[1]); if ($mois != $sv_mois) // on a changé de mois, on recommence la lecture du mois suivant { if ($cpt_mois != 0) // on a déjà lu des engeristrements alors on écrit { $mois_traite = $sv_mois - 1; // les débits et crédits de ce mois lu sont ceux du mois précédent if ($mois_traite < 1) $mois_traite = 12; $libel_mois = Titre_Mois($mois_traite); $ch_tmp = number_format($mt_fact,2,'.',' '); print("<tr><td>$libel_mois</td><td align=right width=100>$ch_tmp</td><td> </td><td> </td><td> </td></tr>"); ............... } $mt_fact = 0; $sv_mois = $mois; } $scateg = $ligne['cpt_scat']; switch ($scateg) { case 67: $mt_fact = $mt_fact + $ligne['cpt_mt']; break; .......... } $cpt_mois = 1; } while($ligne = mysqli_fetch_assoc($ret)); }
Merci d'avance.
Theo







Répondre avec citation
Partager