[PHP] Tableau automatique, mais des lignes sautent

Tableau automatique, mais des lignes sautent [PHP] - PHP - Programmation

Marsh Posté le 22-03-2017 à 17:01:46    

Bonjour
 
Je suis en train de coder une page en php pour lister des applications selons leur site actif
 
pour cela je recupere mes données d'une base, que je stocke dans un tableau globale.
ensuite, je fait 2 tableau PHP selon leur site d'appartenance
donc un tableau pour site a, et un tableau pour site b
quand je fait un var_dump de mes tableaux, j'ai bien tout mes enregistrement.
 
pour l'affichage, je genere un tableau vertical automatique depuis mes 2 tableau variabilisé.
en utilisant un tableau globale, pas de soucis, tout s'affiche correctement
 
mais en voulant afficher chaque tableau separement, pour le site a il me manque les 2 dernières lignes, et pour le site b c'est carrement les 3 dernières
je me creuse la tete, car le code a quasi pas changé, et pourtant ca veut pas.
 
verriez vous ou est l'anomalie ?
 
voici mon code

Code :
  1. while ($res=pg_fetch_object($qexec))
  2. {
  3.         $tableau[]= "$res->app_wai,$res->site_wai,$res->crit_wai";
  4. }
  5. foreach ($tableau as $value)
  6. {
  7.  #echo "Debug value : $value";
  8.  $lig=explode(",",$value);
  9.         if ("$lig[1]" == "CMB" ) { $tab_cmb[]="$value"; }
  10.         if ("$lig[1]" == "Cesar" ) { $tab_cesar[]="$value"; }
  11. }
  12. #Prepa tableaux
  13. $tab_lig=16;
  14. $tab_cmb_tot=count($tab_cmb);
  15. $tab_cmb_col=ceil($tab_cmb_tot/$tab_lig);
  16. $tab_cesar_tot=count($tab_cesar);
  17. $tab_cesar_col=ceil($tab_cesar_tot/$tab_lig);
  18. echo "<table align=center cellpadding=1 cellspacing=0>";
  19. echo "<tr><th class=ttit style='border-right: 2px solid #008080'>CMB</th><th class=ttit>Cesar</th></tr>";
  20. echo "<tr>";
  21. $SITE=array("cmb","cesar" );
  22. foreach ($SITE as $tab)
  23. {
  24.  if ("$tab" == "cmb" ) { $class="style='border-right: 2px solid #008080'"; } else { $class=""; }
  25.  echo "<td valign=top $class>";
  26.         $ncol=0;
  27.         $nlig=0;
  28.  $i=0;
  29.  echo "<table>";
  30.         while ($i <= ${'tab_'.$tab.'_tot'})
  31.         {
  32.   echo "<tr>";
  33.   while ($ncol < ${'tab_'.$tab.'_col'})
  34.   {
  35.                 //selection enregistrement a afficher
  36.                 $idx=$nlig+($ncol * $tab_lig);
  37.                 $plig=explode(",",${'tab_'.$tab}[$idx]);
  38.                 if ($nlig < $tab_lig) { $under="under"; } else { $under=""; }
  39.                 echo "<td class='".$plig[2]." ".$under."'>".$plig[0]."<br>DEBUG : col $ncol; lig $nlig; idx $idx, i $i</td>";
  40.                 $ncol++;
  41.                 $i++;
  42.   }
  43.   echo "</tr>";
  44.   $nlig++;
  45.   $ncol=0;
  46.         }
  47.         echo "</table></td>";
  48. }
  49. echo "</tr></table></body></html>";


---------------
Serveur HFR - OpenTTD
Reply

Marsh Posté le 22-03-2017 à 17:01:46   

Reply

Marsh Posté le 22-03-2017 à 17:59:07    

bon, en fait ca venait de cette ligne

Code :
  1. while ($i <= ${'tab_'.$tab.'_tot'})


 
j'arrivais au bout de mon iteration sans etre aller au bout des index
du coup j'ai modifié en  

Code :
  1. while ($i < ${'tab_.'$tab.'_col'} * $tab_lig)


 
et la ca va beaucoup mieux :)


---------------
Serveur HFR - OpenTTD
Reply

Sujets relatifs:

Leave a Replay

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