Créer des séries à partir de plusieurs colonnes d'une table

Créer des séries à partir de plusieurs colonnes d'une table - PHP - Programmation

Marsh Posté le 08-04-2015 à 13:06:54    

Bonjour,
Dans l'objectif de faire un reporting sous forme de camembert, je dois extraire les données distinctes de 7 colonnes (CODE_TRAV1 à 7) qui composent la série 2 ($serie2[]). La série 1 ($serie1[]) compte le nombre de fois que les éléments de la série2 sont trouvés. J'ai réussi à la faire pour une colonne voici le code :

Code :
  1. <?php
  2.  include("menu//chiens.php" );
  3.  $code_chargee="V140";
  4.  // Extraire les codes travaux utilisé sur ce véhicule
  5.  // Extraire les codes travaux utilisé sur ce véhicule
  6.  $extract_codeTrav_rep = $bdd->query("SELECT DISTINCT CODE_TRAV1 FROM `ordre_reparation_essai` WHERE CODE_VEHICULE='".$code_chargee."'" );
  7.  while($dataset_separated = $extract_codeTrav_rep->fetch())
  8.  {
  9.     $serie2[] = $dataset_separated['CODE_TRAV1'];
  10.  }
  11.  $extract_codeTrav_rep->closeCursor();
  12.  $extract_count_trav = $bdd->query("SELECT count(CODE_TRAV1) FROM `ordre_reparation_essai` WHERE CODE_VEHICULE='".$code_chargee."'  GROUP BY CODE_TRAV1" );
  13.  $serie1 = array();
  14.   while($serie1_separated = $extract_count_trav->fetch())
  15.   {
  16.   $serie1[] = $serie1_separated[0];
  17.   }
  18.  $extract_count_trav->closeCursor();
  19. ?>
  20. <table>
  21. <tr><th width="50">Code</th><th width="300" align="left">Désignation</th><th width="50">Nbr</th></tr>
  22. <?php
  23. $i = 0;
  24. $j = 0;
  25. while ($i < count($serie2)) {
  26. $a = $serie2[$i];
  27. echo ("<tr bgcolor='".( ($j++ % 2 == 0) ? '#e1e1e1' : '#ffffff' )."'>" );
  28. echo ("<td align='center'>".$a."</td>" );
  29. $rep_famille = $bdd->query("SELECT*FROM `taches` WHERE CODE_TACHE='".$a."'" );
  30. $famille_extraite= $rep_famille->fetch();
  31. $famille=$famille_extraite['TACHE'];
  32. echo ("<td align='left'>".$famille."</td>" );
  33. echo ("<td align='center'>".$serie1[$i]."</td></tr>" );
  34. $i++;
  35. }
  36. $rep_famille->closeCursor();
  37. ?>
  38. </table>


 
Voici une solution que j'avais envisagé, j'ai cependant une erreur "Array to string conversion" que je n'arrive pas à résoudre :
 

Code :
  1. <?php
  2.  include("menu//chiens.php" );
  3.  $code_chargee="V140";
  4.  // Extraire les codes travaux utilisé sur ce véhicule
  5.  // Extraire les codes travaux utilisé sur ce véhicule
  6.  $extract_codeTrav_rep = $bdd->query("SELECT DISTINCT CODE_TRAV1,CODE_TRAV2,CODE_TRAV3,CODE_TRAV4,CODE_TRAV5,CODE_TRAV6,CODE_TRAV7 FROM `ordre_reparation_essai` WHERE CODE_VEHICULE='".$code_chargee."'" );
  7.  $serie2 = array();
  8.  while($dataset_separated = $extract_codeTrav_rep->fetch())
  9.  {
  10.     $serie2[] = $dataset_separated;
  11.  }
  12.  $extract_codeTrav_rep->closeCursor();
  13.  $extract_count_trav = $bdd->query("SELECT count(CODE_TRAV1)+count(CODE_TRAV2)+count(CODE_TRAV3)+count(CODE_TRAV3)+count(CODE_TRAV4)+count(CODE_TRAV5)+count(CODE_TRAV6)+count(CODE_TRAV7) FROM `ordre_reparation_essai` WHERE CODE_VEHICULE='".$code_chargee."'  GROUP BY CODE_TRAV1,CODE_TRAV2,CODE_TRAV3,CODE_TRAV4,CODE_TRAV5,CODE_TRAV6,CODE_TRAV7" );
  14.  $serie1 = array();
  15.   while($serie1_separated = $extract_count_trav->fetch())
  16.   {
  17.   $serie1[] = $serie1_separated[0];
  18.   }
  19.  $extract_count_trav->closeCursor();
  20. ?>
  21. <table>
  22. <tr><th width="50">Code</th><th width="300" align="left">Désignation</th><th width="50">Nbr</th></tr>
  23. <?php
  24. $i = 0;
  25. $j = 0;
  26. while ($i < count($serie2)) {
  27. $a= $serie2[$i];
  28. echo ("<tr bgcolor='".( ($j++ % 2 == 0) ? '#e1e1e1' : '#ffffff' )."'>" );
  29. echo ("<td align='center'>".$a."</td>" );
  30. $rep_famille = $bdd->query("SELECT*FROM `taches` WHERE CODE_TACHE='".$a."'" );
  31. $famille_extraite= $rep_famille->fetch();
  32. $famille=$famille_extraite['TACHE'];
  33. echo ("<td align='left'>".$famille."</td>" );
  34. echo ("<td align='center'>".$serie1[$i]."</td></tr>" );
  35. $i++;
  36. }
  37. $rep_famille->closeCursor();
  38. ?>
  39. </table>


 
Merci pour le coup de main !!!


---------------
Mich
Reply

Marsh Posté le 08-04-2015 à 13:06:54   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed