Probleme passage entre les annees

Signaler
Messages postés
18
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
12 août 2008
-
Messages postés
18
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
12 août 2008
-
salut  . je galere depuis logntemps dans un projet et quand j'ai cru ça termine je tombe sur un beug
bref mon beug cette fois çi j'ai decovert c'est passage entr les années au niveau semaine
j'explique
j'ai table suivante

agent  |  date_debut  |  date_fin
  x      | 2008-01-01 | 2009-01-01

requete est suivante :

$sql="SELECT SAR, Date_debut,Date_fin, "
. "WEEK( Date_debut) AS wDebut,WEEK( Date_fin) AS wfin,DAYOFWEEK( Date_debut) AS wsDebut,DAYOFWEEK( Date_fin) AS wsfin,"
. "TO_DAYS( Date_debut) AS dDebut,TO_DAYS( Date_fin ) AS dFin, year( Date_debut) AS yDebut,year( Date_fin) AS yfin "
. " FROM table where year(date_debut)=$variable_annee OR year(date_fin)=$variable_annee " ;


$requete = $connexion->query($sql);
$result = $requete -> fetchALL();

et voiçi script
<?php
 foreach ($result as $row)
                 {
                  


                    $agent1 = $row['SAR'];
                    $semaine1 = $row['wDebut'];                     $jourSemaine1 $row['wsDebut']; // dimanche 1
                    $jourDebut1 = $row['dDebut'];
                    $jourFin1 = $row['dFin'];


     if ($jourDebut1 < $premier_jour_semaine)
      {
      $jour_debut_final = $premier_jour_semaine;
      }
      else
      {
      $jour_debut_final=$jourDebut1;
      }
         if ($jourFin1 > $dernier_jour_semaine)
      {
      $jour_fin_final = $dernier_jour_semaine;
      }
      else
      {
      $jour_fin_final=$jourFin1;
      }
    
                       for( $jour1 =  $jour_debut_final ;$jour1 <= $jour_fin_final; $jour1++ )
     
                                             {




   
  
                           if( $jourSemaine1 > 1 AND $jourSemaine1 <=7  )
                           $nbrJours6[ $semaine1]++;
                  $jourSemaine1++;
                           if( $jourSemaine1 > 7 )
    
               {
    
               $semaine1++; $jourSemaine1 = 1;
        
            }
            }
                      }
     
                   


               
      ?>

but script et calculrer difference entre date debut et date fin en nombre de jour mais par semaine . résultat va afficher 5 semaine 1 ( semaine 1 de 2008 comence en 31 decembre) et 6 pour reste semaine ( derniere semaine 2008 s'arrete 28 decembre 2009) ei il prend pas reste
j'ai ajouté requete et script pour afficher liens des annees suivant annees présent dans la table. la quand je clique sur 2008 ça marche  (where year(date_debut)=$variable_annee) mais kan je clique sur 2009 ça marche pas
j'ai trouvé beug car dans ma boucle for comence calcul de date debut et pas date fin
le probleme j'ai pas trouvé solution vu semaine e varies et semaine 1 de 2009 par exemple comence 29 decembre 2008 d'ou d'apres cette table je dois avoir resultat pouyr annee 2009 4 jours dans semaine 1
merçi d'avance pour votre aide

2 réponses

Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

Une fonction MySQL fait cela : http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_datediff
Ca évite des calculs en PHP, c'est MySQL qui le calcule sur ses formats de dates.

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
Messages postés
18
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
12 août 2008

mùerçi de m'avoir répondu
cette fonction je connais et je dois demander excuse car  j'ai pas expliquer vraiment probleme
je dois pas donner difference entre deux dates en total mais nombre de jours  total par semaines
c'est a dire imagine j'ai deux lignes
2008-01-01         2008-01-09
2008-01-01         2008-01-15

donc comme résultat je dois avoir
semaine 1: 10 jours
semaine 2  : 9  jours
semaine 3  :  2 jours
bien sur en prenant pas en compte dimanche ce qui me permet ce script php
bien sur script marche bien mais probleme passage entre deux annees c'est a dire date debut et en 2008 et date de fin c'est en 2009  la il me cree un beug au niveau semaine coomme j'ai expliqué dans problématique
j'espere que t'a compris mon soucis maintenant sinon pour fonction sql tous ce que je sais c'est elle donne difference total et pas avec details sinon si tu connais exemple en net qui explique usage de cette fonction qui marche avec mon but merçi de me passer adresse
cordialement