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 :

Totale d'une colonne [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Points : 18
    Points
    18
    Par défaut Totale d'une colonne
    Bonjour,

    Je voudrais savoir si il est possible en php de calculer le totale d'une colonne, lorsque celle-ci n'est pas enregistrée dans la BDD. En effet j'ai une colonne avec le nombre de jours de congés (donc qui n'est pas dans ma base, vu que c'est une donnée calculée) prit par un salarié. En effet j'aurais besoin d'avoir le total de ses journées de congés, afin de pouvoir calculer le nombre de jours lui restant.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour et bienvenu sur le forum,

    Pourrais-tu préciser ton contexte ?
    Tu peux faire la somme d'une colonne en SQL avec SUM()
    Tu peux faire la somme d'un tableau en PHP avec array_sum()
    Tu peux aussi additionner les valeurs d'un jeu de resultat SQL en le parcourant.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Ici vu que les données ne sont pas dans la base je ne peux donc pas utiliser les fonctions SQL il me semble.

    En fait, dans ce tableau j'ai 3 colonnes, date de début de conges, date de fin de conges, et le nombre de jours de conges jusque là tout va bien.
    En fait en dessous j'ai une ligne avec le nombre de jours autorisé pour le contrat (là je vais le chercher dans ma base donc pas de problème), et j'ai une autre ligne avec le nombre de conges restant, et c'est là que j'ai un problème puisque dans ma formule il ne me retire que la première ligne de congés. Par exemple si le nombre de jours pour la première ligne de congés, il me fait 25(nombre de jours autorisé pour le contrat)-3 donc il me sort 22.

    Voici mon code :
    Appel à la base
    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
    <?php
     
    include "../config.php" ;
    $Numero=$_GET['index'] ;
    $reponse = mysql_query("SELECT *
    FROM personne, contrats_personnes, contrats
    WHERE contrats.Num_contrat=contrats_personnes.Num_contrat
    AND personne.Num_perso=contrats_personnes.Num_perso
    AND personne.Num_perso='$Numero'");
     
    $donnees = mysql_fetch_array($reponse);
    $resultat=mysql_query("SELECT Num_conges, Num_perso,Date_debut as dated, Date_fin as datef, DATE_FORMAT(Date_debut,'%d-%m-%Y'),  DATE_FORMAT(Date_fin,'%d-%m-%Y'), Heure, Numtype_conges, Numuti, Poste, Date_enr, Journee
    FROM conges 
    WHERE Num_perso='$Numero'");
     
    ?>
    Et ici le tableau :

    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
    <table>
     <?php
    $c = 0;
    $totaljours=0     ;
     while($boucle = mysql_fetch_assoc($resultat))
     
    {
     
     $ligne1="#007fe0" ;
     $ligne2="transparent" ;
     $couleur = ($c % 2 == 0) ? $ligne1 : $ligne2;      $couleur2 = ($c % 2 == 0) ? "white" : $ligne1;
     
     
      ?>
     <p>
    <tr>
    <td bgcolor="<?php echo($couleur); ?>" width="5%"><div id="font"><font   color="<?php echo($couleur2); ?>"><b><center><?php echo $boucle["DATE_FORMAT(Date_debut,'%d-%m-%Y')"]; ?></center></font></div></td>
    <td bgcolor="<?php echo($couleur); ?>" width="5%"><div id="font"><font   color="<?php echo($couleur2); ?>"><b><center><?php echo $boucle["DATE_FORMAT(Date_fin,'%d-%m-%Y')"]; ?></center></font></div></td>
    <td bgcolor="<?php echo($couleur); ?>" width="5%"><div id="font"><font   color="<?php echo($couleur2); ?>"><b><center><?php echo $nbjours = round((strtotime($boucle["datef"]) - strtotime($boucle["dated"]))/(60*60*24)+1); ?></center></font></div></td>
     
      <?php
        $totaljours=$totaljours+($donnees['Nbre_jours']-$nbjours);
     
          }
      $c++;
       ?>
    </table>
    <table border=0 width="20%">
       <?
       $total=$donnees['Nbre_jours']-$nbjours
       ?>
       <tr><label><td><B>Nombre jours restants</td> <td>:</td></B> <td><?php echo $total ;?></td></label></tr></br>
       <tr><label><td><B>Nombre jours autorisé pour le contrat</td> <td>:</td></B> <td><?php echo $donnees['Nbre_jours'] ;?></td></label></tr></br>
    </table>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ici vu que les données ne sont pas dans la base
    Elles ont bien l'air d'être dans une base tes données pourtant.

    C'est plutot un probleme de logique que tu rencontres.

    Ton nombre de jours autorisés c'est $totaljours = $donnees['Nbre_jours'];

    A chaque congé pris, ce nombre diminue : $totaljours = $totaljours - $nbjours;

    Le nombre de jours restants au final c'est $totaljours
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    En effet c'est très certainement un problème de logique, je début en php, et j'ai tout de même un peu de mal, j'espère qu'avec le temps j'y arriverais mieux !

    J'ai tapé trop vite dsl, les données qui ne sont pas dans la base c'est le nombre de jours pris. Les données inscrites dans la base sont date de début et date de fin.

    J'ai testé et çe me fait toujours pareil :
    C'est bien dans la boucle qu'il le faut les mettre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $totaljours = $totaljours - $nbjours;
    Et celui-ci juste avant la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $totaljours=$donnees['Nbre_jours']-$nbjours;

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Oui sauf qu'avant la boucle il y a pas la soustraction (d'autant plus que $nbjours n'existe pas encore).

    Si ca ne fonctionne pas, remontre nous ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    ça marche nikel je te remercies, de tes explications et donc de la solution !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/05/2009, 06h40
  2. Total d'une colonne d'un tableau dynamique
    Par Argol dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2009, 14h07
  3. [Tableaux] Total d'une colonne dans un tableau
    Par carmen256 dans le forum Langage
    Réponses: 4
    Dernier message: 25/03/2007, 12h42
  4. listview, affichage du total d'une colonne
    Par zx10 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 04/12/2006, 16h58
  5. total d'une colonne de DBGrid
    Par kalou26 dans le forum C++Builder
    Réponses: 1
    Dernier message: 04/07/2006, 18h56

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