IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Tableaux et numéro de semaines


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Par défaut Tableaux et numéro de semaines
    Bonjour,

    j'essaye de faire une petite application en php sur la variation horaire sous forme d'un tableau.

    Dans ma première colonne, j'ai donc un "i" qui est incrémenté de 1 a 52 (pour les numéros de la semaine en 1 an). Et en faite je voudrais faire, que ma requete selectionne la date dans ma base de données et le mette dans la bonne ligne par rapport au numéro de la semaine. Comment je peux faire ?

    Merci d'avance

    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
     
    	for ($i=1; $i<53; $i++) 
    	{
    	echo "<tr align='center'>";
    		echo "<td>";
    			echo "$i";
    		echo "</td>";
     
    		$query_variation="select SUM(minutes) as TOTAL,dossier, date from dossier where tech='vfa' GROUP BY dossier ";
    		$result_variation=mysql_query($query_variation);
     
    			$rtt_acquis_0 = 0; // total pas rtt
    			$rtt_acquis_1 = 0; // total rtt
     
     
    				while($row = mysql_fetch_assoc($result_variation))
    				{
                        if($row["dossier"] != 'RTT-P')
                        {
    		            $rtt_acquis_0+=$row["TOTAL"];
    					}
     
    					if($row["dossier"] == 'RTT-P')
                        {
    		            $rtt_acquis_1+=$row["TOTAL"];
    					}
    				}
     
    		echo "<td>";
    		$rtt_acquis_0_fin=$rtt_acquis_0/60;
    		echo round($rtt_acquis_0_fin)." h";
    		echo "</td>";
     
    		echo "<td>";
    		$rtt_acquis_1_fin=$rtt_acquis_1/60;
    		echo round($rtt_acquis_1_fin)." h";
    		echo "</td>";
     
    		echo "<td>";
    		$cumul=round($rtt_acquis_0_fin)-round($rtt_acquis_1_fin)." h";
    		echo $cumul;
    		echo "</td>";
    	echo "</tr>";
    	}
     
    echo "</table></center>";

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Deux remarques avant que tu n'ailles plus loin :
    • Il n'y a pas de correspondance exacte entre l'année et le N° de semaine : le 1er janvier d'une année peut très bien se trouver dans la dernière semaine de l'année précédente, ou bien la semaine N° 1 d'une année peut se commencer au mois de décembre de l'année précédente ;
    • Une année peut compter 53 semaines, ce qui est le cas de 2009.

    Ensuite, si tu donnais un exemple HTML du visuel que tu souhaites obtenir, ce serait peut-être plus simple pour la compréhension.

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Par défaut
    Merci pour tes renseignements.
    Que dois je faire pour afficher cela dans un tableau par semaine !

    Voici mon code
    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
     
    $date = date("Y");
    $date2 = $date-1;
     
    echo "<center><table bordercolor='black' border='0' bgcolor='#C4D7ED'>";
    	echo "<tr align='center' bgcolor='#F6E497'>";
    		echo "<td>";
    			echo "Semaine";
    		echo "</td>";
     
    		echo "<td>";
    			echo "RTT Acquis";
    		echo "</td>";
    		echo "<td>";
    			echo "RTT pris";
    		echo "</td>";
     
    		echo "<td>";
    			echo "Cumul";
    		echo "</td>";
     
    		echo "<td>";
    			echo "Prises de RTT année $date";
    		echo "</td>";
     
    		echo "<td>";
    			echo "Observations";
    		echo "</td>";
     
    	echo "</tr>";
     
    	echo "<tr align='center' bgcolor='#F6E497'>";
    		echo "<td>";
    		echo "Excédent<br /> RTT $date2";
    		echo "</td>";
    	echo "</tr>";
     
    	echo "<tr align='center' bgcolor='#F6E497'	>";
    		echo "<td>";
    		echo "Report<br /> sur $date";
    		echo "</td>";
    	echo "</tr>";
     
    	for ($i=1; $i<53; $i++) 
    	{
    	echo "<tr align='center'>";
    		echo "<td>";
    			echo "$i";
    		echo "</td>";
     
    		$query_variation="select SUM(minutes) as TOTAL, dossier, from dossier where tech='vfa' GROUP BY dossier";
    		$result_variation=mysql_query($query_variation);
     
    			$rtt_acquis_0 = 0; // total pas rtt
    			$rtt_acquis_1 = 0; // total rtt
     
     
    				while($row = mysql_fetch_assoc($result_variation))
    				{
                        if($row["dossier"] != 'RTT-P')
                        {
    		            $rtt_acquis_0+=$row["TOTAL"];
    					}
     
    					if($row["dossier"] == 'RTT-P')
                        {
    		            $rtt_acquis_1+=$row["TOTAL"];
    					}
    				}
     
    		echo "<td>";
    		$rtt_acquis_0_fin=$rtt_acquis_0/60;
    		echo round($rtt_acquis_0_fin)." h";
    		echo "</td>";
     
    		echo "<td>";
    		$rtt_acquis_1_fin=$rtt_acquis_1/60;
    		echo round($rtt_acquis_1_fin)." h";
     
    		echo "</td>";
     
    		echo "<td>";
    		$cumul=round($rtt_acquis_0_fin)-round($rtt_acquis_1_fin)." h";
    		echo $cumul;
    		echo "</td>";
    Donc j'affiche tout dans un tableau. Dans la première colonne, il y a les numeros de la semaine. Puis dans la deuxième colonne, il y a le nombre d'heures qui est différent de RTT-P ! Dans la troisième colonne, il y a le nombre d'heures où il y a RTT-P. Et enfin dans la troisième c'est l'un moins l'autre. De, plus par la suit, je dois reprendre la valeur qui est dans la case supérieur pour faire une addition avec !

  4. #4
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Ouch, 53 requêtes

    Tu ne peux pas continuer dans cette voie, le précipice est tout près

    il faut faire une requête en premier lieu et boucler dessus ensuite, et surtout pas mettre une requête dans ta boucle for.

    Mysql peut aussi t'aider en ordonnant par numéro de semaine.
    http://dev.mysql.com/doc/refman/5.0/...functions.html (week).

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Par défaut
    Alors comment je peux faire pour améliorer mon code ??

    Je met juste la requete avant la boucle ?

  6. #6
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Oui, tu fais ta requête avant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(minutes) as TOTAL, dossier, date, WEEK(date) semaine FROM dossier WHERE tech='vfa' GROUP BY dossier ORDER BY semaine;
    Ensuite, tu construis un tableau de façon à avoir en index le numéro de semaine.

    En dernier lieu, dans ta boucle for, tu affiches si elle existe l'entrée correspondant à ton compteur.

Discussions similaires

  1. [Crystal] transformation d'une date en numéro de semaine
    Par barna dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/03/2017, 09h41
  2. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  3. [excel]calcul du numéro de semaine
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/10/2005, 11h57
  4. [Calendar] Problème de numéro de semaine de l'année
    Par gaia_dev dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 29/11/2004, 11h44
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo