Calculer une colonne d'un tableau

Résolu
Bonjour a tous !

aider moi SVP c'est important!!

voila, mon formulaire renvoi les resultats de ma requete dans un tableau (dans lesquel j'ai le deux colonnes "nom_division" et "nbr_total_de_pc" <ceci dit il ya plusieurs divisions>) :

Moi en fait je souhaiterais faire le total de la colonne "nbr_total_de_pc" pour ainsi calculé un taux de vétusté ?

comment je peut faire cela, je sai pas comment m'y prendre ? et c'est important pour moi SVP !

Merci beaucoup !!

5 réponses

  1. Salut maily !
    effectivement, je remplis mon tableau en mettant la requete que j'avais tester auparvant sur phpMyadmin,
    la voivi :

    SELECT division.nom_div,Count( * )nbr_total_PC (corespond a ma deuxieme colonne),
    FROM materiel, division, type_mat
    WHERE type_mat.id_sorte_mat = $smat
    AND materiel.id_div = division.id_div
    AND type_mat.id_type_mat = materiel.id_type_mat
    GROUP BY division.id_div;

    lorsque je la teste j'ai bien le resultat de la requete( les deux colonne)
    mais voila c'est que normalement pour avoir le resultat total d ela colonne "nbr-pc-total" il faut avoir qu'il ya une boucle nen ? <et une boucle ds une requete hin ? jms vu, je dit nimp.. lol)

    cmt je peut faire avec ma requete ? maily

    grd merci
    5
    1. Contributeur
      En fait, il faut faire une autre requête dans ce cas là..

      select count(*) nbr_total_PC  


      ou alors... quand tu affiches:

      $nbTotal = 0;
      
      while (){ // ta boucle d'affichage, pour toutes les divisions
      echo "<td>".$res[1]."</td>";
      $nbTotal = $nbTotal + $res[1];
      }

      ou $res[1] correspond au nombre total de pc pour une division

      Au choix!
      Je te conseille la deuxième, comme ça, tu ne fais qu'un seul accès à la base de données, ce qui est mieux (plus rapide...)

      0
    2. @mailymerci pour ton aide maily!

      j'ai essayer la 2em methode mais sans succes, je n'arive pas; je me mêle un ti pe les pinceaux, il m'affiche rien a l'ecran

      voila
      $nbTotal = 0;

      while($tab = mysql_fetch_row($resultat))

      //sa c'est mon tableau (ou il ya le nom_div et nbr_total_pc)
      echo "<tr><td>"
      .$tab[0] //nom_div
      ."</td><td>"
      .$tab[1] //Nombre PC / imprimantes
      ."</td></td>"

      $res[1] correspond au nombre total de pc pour une division
      donc pour moi

      echo "<td>".$tab[1]."</td>";
      $nbTotal = $nbTotal + $tab[1];

      ----------------------------------------
      c'est comme sa ou je me trompe!?

      Mais par contre avec la premiere mehode (avec la requete)
      sa fonctione bien (Attention il ya tjrs un "mais" avec moi olala) mais
      du coup les données du tableau n'apparaisent plu et dans la colonne "non_div" j'ai mon résultat de la requete !

      j'espere que je t'est pas trop chamboulé escuz moi ! c difficile a expliquer....
      0
    3. Contributeur
      @mailyça ressemblerais à ça:
      while($tab = mysql_fetch_row($resultat)){
      
      //sa c'est mon tableau (ou il ya le nom_div et nbr_total_pc)
      echo "<tr><td>"
      .$tab[0] //nom_div
      ."</td><td>"
      .$tab[1] //Nombre PC / imprimantes
      ."</td></td>";
      $nbTotal = $nbTotal + $tab[1]; 
      
      }
      
      // apres l'affichage de tous les autres:
      echo "<tr><td>nombre total</td><td>".$nbTotal."</td></tr>";
      echo "</table>";
      0
    4. Contributeur
      @mailyEt pour l'autre méthode, c'est à dire la première, utilise 2 variables différentes pour récupérer les résultats des 2 requêtes que tu as effectuées.
      0
    5. @mailyGrand merci a toi maily !!

      sa marche ! le resultat s'affiche! (comme tu c'est qu'avec moi ya tjrs un "mais" :)....c'est un peiti "mais" ausi hin du moin jespere....

      voila c'est qu'à l'ecran, il m'affiche le resultat total à la fin c'est ce que je voulais, ...mais le probleme c'est en meme temp j'ai le detaile du calcul ...? .... j'ai essayer d'effacer, deplacer, remettre, du code mais je c'est pa pourkoi cela m'affiche sa !
      voici un apercu sa sera plus clair...

      191
      804
      919
      928
      935
      969
      1134
      1263

      Et dans mon tableau

      DPP 191
      ZONE STOCKAGE 613
      DAPEC 115
      RAPE 9
      SAIA 169
      DAETP 7
      DPET 34

      tu c'est pa pourquoi sa m'affiche sa ?
      0
  2. oui escuse moi j' y avais penser mais j'ai oublier !

    while($tab = mysql_fetch_row($resultat))

    echo "<tr><td>"
    .$tab[0] colonne //nom_div
    ."</td><td>"
    .$tab[1] colonne //Nombre PC / imprimantes
    ."</td></td>"

    .$nbTotal = $nbTotal +$tab[1];

    //mon resulat en fin du tableau
    echo "<tr><td>nombretotal</td><td>".$nbTotal."</td></tr>";echo "</table>";

    merci
    2
    1. pfou hou hou !!! :D :D je suis mort de rire!!
      quel maily.... crô fort ! olala un de c'est..... moi
      grand merci COM SO !! tu m'erite une fleur !!!!

      /. _ .\

      a++
      2
      1. Contributeur
        Bonjour!

        Comment remplis tu ton tableau? Si c'est dans une base de données, tu pourras faire une requête toute simple avec count *. Ou alors, au moment ou tu les affiches, tu l'ajoute à une nouvelle variable qui sera le total...

        ps: toutes les questions posées sont importantes pour ceux qui la posent... ;))))))))))
        1
        1. Contributeur
          Tu ne mets jamais {} ? ni de ;? et ça compile? bizarre....

          while($tab = mysql_fetch_row($resultat)){
          
             echo "<tr><td>"
                     .$tab[0] colonne //nom_div
                     ."</td><td>"
                     .$tab[1] colonne //Nombre PC / imprimantes
                     ."</td></td>";
          
                      $nbTotal = $nbTotal +$tab[1];
          }
          
          //mon resulat en fin du tableau
          echo "<tr><td>nombretotal</td><td>".$nbTotal."</td></tr>";echo "</table>";


          En fait, tu collais à ton affichage du tableau $nbTotal = $nbTotal + $tab[1]. ça, c'est à cause du . devant le $nbTotal = $nbTotal + $tab[1].
          1