Afficher la duree total a la fin de chaque date

Signaler
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012
-
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012
-
Bonjour,
j ai un pti souci avec l afichage des resultats d une requette :
voilà ce que je ve faire :

je veux lorsque j affiche les date à la fin de chaque date j affiche la duree total, comme suit :
Date                   Duree(min)
25/08/07            50
                          40
                          20
Duree total         110

26/08/07            20
                          20
Duree total         40

voilà le code php :  mon probleme est d a fiicher a la fin de chaque date la duree total,
(j ai deja afficher la duree global de tous les jours mais je l ai pas copié aussi)
                   

// requette "req" pour la selection des données que je ve afficher
$resultat =''
// while($array = mysql_fetch_array($req))
{
$resutlat .=\"----
".$array['date_c'].", ".$array["duree"].", \";

 }
$resultat="
";

echo $resultat;

Merci pour vos aides

N'importe où. 
mais là où il le faut.

4 réponses

Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

bon, ce que je dois faire est :
une variable temporaire contenant la date en
cours, et une variable dans laquelle tu cumules tes durées. Chaque fois
que la date en cours est différente de la date dans la variable
temporaire, c'est que je vais passer à une nouvelle date. Il te faut
donc à ce moment là afficher le cumul et le remettre à zéro (avant
d'afficher la nouvelle date) puis stocker la nouvelle date dans ta
variable tmp
mais je n arrive pas a le faire dans le code precedent !

N'importe où. 
mais là où il le faut.
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Hello,

1) requête, pas requette

2) je sens que tu postes dans plusieurs forums différents... celui qui t'a répondu ne t'en dit pas plus ? ou tu es juste trop impatient d'avoir la réponse ? :) Parce que si c'est le cas, je trouve dommage (et incorrect) de faire perdre du temps à plusieurs personnes...

// while($array = mysql_fetch_array($req))
{
    if(isset($temp) and $temp  == $array[0]){
       même variable qu'au passage de boucle précédent
    }
    else {
       nouvelle valeur
    }


    $temp = $array[0];
 }
Messages postés
19
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
3 mars 2009

Salut,
Ton raisonnement est le bon. tu dois bien passer par une variable temporaire qui contient la date que tu traites.

// requette "req" pour la selection des données que je ve afficher
$resultat =''
$datetemp=''; // date temporaire
$cumuldate=0; // pour conserver le cumul par date
// while($array = mysql_fetch_array($req)) {
    $cumuldate=$cumuldate+$array[\"duree\"]; // ajoute la durée
    if ($datetemp!=$array['date_c']) {
        $resutlat .=\"----
Durée total pour cette date, ".$cumuldate.", \"; //Affiche le total pour la date
        $datetemp=$array['date_c']; //récupère la nouvelle date à traiter
        $cumuldate=0;
    }else {
        $resutlat .=\"----
".$array['date_c'].", ".$array["duree"].", \"; //Affiche la durée
    }
 }
$resultat="
";
echo $resultat;

Voila je sais que c'est pas parfait, car lors de la première boucle, ca va t'afficher un total incohérent, mais c'est une base

bon courage
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

merci pour ta reponse
donc je peux faire :

$1ere=0;
// requette "req" pour la selection des données que je ve afficher
$resultat =''
$datetemp=''; // date temporaire
$cumuldate=0; // pour conserver le cumul par date
// while($array = mysql_fetch_array($req)) {
    $cumuldate=$cumuldate+$array[\"duree\"]; // ajoute la durée
    if ($datetemp!=$array['date_c'] && $1ere==1 ) {
   
    $resutlat .=\"----
Durée total pour cette
date, ".$cumuldate.", \";
//Affiche le total pour la date
        $datetemp=$array['date_c']; //récupère la nouvelle date à traiter
        $cumuldate=0;
    }else {
   
    $resutlat
.=\"----
".$array['date_c'].", ".$array["duree"].", \";
//Affiche la durée
    }
$1ere=1;
 }
$resultat="
";
echo $resultat;

ça se passe ?
N'importe où. 
mais là où il le faut.